NGINX: переписывать только определенный (переменный) путь

1526
The Mane

Я хочу переписать URL-адрес, содержащий определенный путь переменной, только для одного конкретного IP-пользователя.

http://domain.com/variable 

Должно стать:

http://domain.com/variable/system 

Однако, если есть другой путь, следующий за / variable, он должен остаться без изменений. Таким образом, следующий URL должен остаться прежним:

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

Я пробовал следующий код

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

Тем не менее, при запуске этого кода, кажется, получить цикл, в результате чего

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

Я понимаю, что идет не так, но я не знаю, как я могу легко / правильно это исправить. Любая помощь будет принята с благодарностью.

0

1 ответ на вопрос

2
Richard Smith

Ваш (.*)захват /персонажа тоже. Вы должны исключить это, чтобы предотвратить цикл.

Пытаться:

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

Смотрите этот полезный ресурс по регулярным выражениям.

Похожие вопросы