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?

ptn777
quelle

Antworten:

5

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

location = / {
    rewrite ^ /something/else break;
}
womble
quelle
3

Dies sollte den Job machen:

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

quelle
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;
mgorven
quelle
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.

Mischka
quelle