Я хочу переписать 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 ....

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

1 ответ1

2

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

Пытаться:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .