Leiten Sie Nginx nur um, wenn keine Parameter vorhanden sind

Leiten Sie Nginx nur um, wenn keine Parameter vorhanden sind

Hier ist meine Anforderung für die Umleitung in Nginx -

Redirect Example
1. www.example.com/gaming.html -> www.example.com/gaming-zone.html

No Redirect example (when params are present, dont redirect)
2. www.example.com/gaming.html?name=foo -> www.example.com/gaming.html?name=foo 

Ich habe eine sehr einfache Umleitung eingerichtet -

rewrite ^/gaming.html$ /gaming-zone.html redirect;

das Beispiel 1 erfüllt, aber auch Beispiel 2 umleitet. Kann mir bitte jemand mitteilen, wie man die Regel so korrigiert, dass URLs mit Parametern nicht umgeleitet werden?

Antwort1

Es scheint nicht, als hätten Sie zumindest versucht, Informationen zu bekommen …

Laut dem Nginx-HTTP-KernmodulDokumentation. Sie können entweder $is_args oder $args oder $arg_name verwenden.

Daher können Sie einfach die folgende Zeile verwenden:

if($is_args = ""){
    rewrite ^/gaming.html$ /gaming-zone.html redirect;
}

Da die zweite URL nicht geändert werden soll, müssen Sie mit dieser URL nichts tun.

verwandte Informationen