Wie verwendet Nginx Rewrite, um ?mode=test zu allen HTML-Codes hinzuzufügen und es nur einmal hinzuzufügen?
阿神
阿神 2017-05-16 17:20:29
0
2
712
    location / {
            if($args *~ "mode=formal"){
                rewrite (.*) ? redirect;
                rewrite (.*) ?mode=test redirect;
            }
            else if($args [[不包含mode=test]]){
                rewrite ^/(.*).html$ /.html?mode=test redirect;
            }
            error_page 404 = @nodejs;
    }

Ich möchte es wie oben beschrieben konfigurieren, zuerst beurteilen $args und dann neu schreiben, ich weiß nicht, ob es möglich ist.
Und wie soll ich [[exklusive Modus=Test]] schreiben?

Update

Es wurde getestet und dies ist nicht möglich. $args können nicht in der if-Bedingung verwendet werden. Wie soll diese Idee nun umgesetzt werden?

Update

Ich habe beide Methoden in der Antwort ausprobiert und als ich Nginx neu gestartet habe, ist der gleiche Fehler aufgetreten:

nginx: [emerg] unknown directive "if($arg_mode" in ....

und

nginx: [emerg] unknown directive "if($query_string" in ....

Liegt es daran, dass das if-Modul nicht installiert ist?

阿神
阿神

闭关修行中......

Antworte allen(2)
黄舟

if ( $arg_mode !~ \w+ ){
rewrite (.*) /index.html?mode=test redirect;
}

Ty80
location / {
if ($query_string !~ mode=test) {
    rewrite ^/(.*)\.html$ /$1.html?mode=test redirect;
}
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage