NGINX: reescreve apenas o caminho específico (variável)

0

Eu quero reescrever uma url contendo um caminho de variável específico, apenas para um ip de usuário específico.

http://domain.com/variable

Deve se tornar:

http://domain.com/variable/system

No entanto, se houver outro caminho seguindo o caminho / variable, ele deve permanecer inalterado. Portanto, o URL a seguir deve permanecer o mesmo:

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

Eu tentei o seguinte código

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

No entanto, ao executar este código, parece obter um loop, resultando em

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

Eu entendo o que está errado, mas não sei como posso corrigi-lo facilmente / corretamente. Qualquer ajuda seria muito apreciada.

    
por The Mane 30.11.2016 / 10:58

1 resposta

2

Seu (.*) também captura o caractere / . Você precisa excluí-lo para evitar um loop.

Tente:

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

Veja este recurso útil em expressões regulares.

    
por 30.11.2016 / 11:07