NGINX: Nur bestimmten (variablen) Pfad neu schreiben

1684
The Mane

Ich möchte eine URL mit einem bestimmten Variablenpfad nur für eine bestimmte Benutzer-IP umschreiben.

http://domain.com/variable 

Soll werden:

http://domain.com/variable/system 

Wenn jedoch ein anderer Pfad dem Pfad / variable folgt, sollte dieser unverändert bleiben. Die folgende URL sollte also gleich bleiben:

http:/domain.com/variable/something-else 

Ich habe den folgenden Code ausprobiert

 if ($http_x_forwarded_for = xxx.xxx.x.xx) {  rewrite ^/(.*)$ http://domain.com/$1/system redirect; } 

Wenn Sie diesen Code ausführen, scheint er jedoch eine Schleife zu erhalten

http://domain.com/variable/system/system/system/system .... 

Ich verstehe, was schief geht, aber ich weiß nicht, wie ich dies leicht / richtig beheben kann. Jede Hilfe wäre sehr dankbar.

0

1 Antwort auf die Frage

2
Richard Smith

Ihr (.*)erfasst auch den /Charakter. Sie müssen es ausschließen, um eine Schleife zu verhindern.

Versuchen:

rewrite ^(/[^/]+)$ $1/system redirect; 

Sehen Sie sich diese nützliche Ressource für reguläre Ausdrücke an.