So leiten Sie mit einer Abfragezeichenfolge in Nginx um

So leiten Sie mit einer Abfragezeichenfolge in Nginx um

Ich möchte umleiten:

something.com/search?keywords='value'

Zu

something.com/search?q='value'

Hier ist meine Nginx-Konfiguration:

location ~ /search {
       if ($args ~* "keywords=(.*)") {
            rewrite ^.*$ /search?q=$arg_keywords permanent;
        }
    }

Bei der Umleitung ist der qParameter jedoch leer.

Was ist falsch?

Antwort1

Aber der q-Parameter ist bei der Umleitung leer.

Ich sehe dieses Problem nicht. Wenn ich die Konfiguration wie geschrieben teste, entsteht eine Umleitungsschleife, weil das Original keywords='value'an die neu geschriebene URI angehängt wird.

Sie können rewritedie Einbeziehung ursprünglicher Parameter verhindern, indem Sie ?an die umgeschriebene URI ein anhängen.

Zum Beispiel:

rewrite ^ /search?q=$arg_keywords? permanent;

Sehendieses Dokumentfür Details.

verwandte Informationen