Nginx schreibt Basis-URL neu


8

Ich möchte die Root-URL

http://www.example.com

umleiten zu

http://www.example.com/something/else

Dies liegt daran, dass ein seltsames WP-Plugin immer ein Cookie auf der Basis-URL setzt, wodurch ich es nicht zwischenspeichern kann.

Ich habe diese Richtlinie ausprobiert:

location / {
    rewrite  ^  /something/else  break;
}

Aber 1) es gibt keine Weiterleitung und 2) Seiten beginnen mehr als 1.000 Anfragen an meinen Server zu senden. Mit diesem:

 location / {
        rewrite  ^  http://www.example.com/something/else  break;
    }

Chrome meldet eine Umleitungsschleife.

Was ist der richtige reguläre Ausdruck?

Antworten:


5

Sie möchten wirklich genau mit der Stamm-URL in Ihrem Standortblock übereinstimmen , nicht mit "absolut alles":

location = / {
    rewrite ^ /something/else break;
}

3

Dies sollte den Job machen:

location / {
   rewrite  ^/$  /something/else  break;
}

1

Die rewriteAnweisung führt standardmäßig ein internes Umschreiben durch, es sei denn, das Ziel ist eine absolute URL oder Sie setzen die Flags redirectoder permanent. So etwas würde eine HTTP-Umleitung an den Client zurückgeben:

rewrite ^/$ /something/else redirect;

1

Oder Sie können dies tun:

location = / {
     rewrite ^/$    http://example.com/an/other/path;
}

Nginx sendet automatisch eine HTTP 302-Umleitung an den Client, wenn die neu geschriebene URL mit dem Schema 'http' beginnt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.