
Tenho a seguinte configuração no nginx para redirecionar em um determinado cenário.
location /prefix-someurl {
if (condition) {
return 301 $scheme://$host/xyz.html;
}
proxy_pass someValue;
}
e em outro bloco existem algumas regras de reescrita como esta
location /someurl {
if (condition) {
rewrite ^(.*)abc(.*)$ $1test/abc$2 break;
rewrite ^(.*)someurl/$(.*) $1someurl/test/index.html$2;
}
proxy_pass value;
}
A configuração acima funciona conforme planejado. Porém se para este último eu fizer esta modificação;
location /someurl {
if (condition) {
return 301 $scheme://$host/xyz.html;
}
if (condition) {
rewrite ^(.*)abc(.*)$ $1test/abc$2 break;
rewrite ^(.*)someurl/$(.*) $1someurl/test/index.html$2;
}
proxy_pass value;
}
Recebo muitos erros de redirecionamento para acessar/prefix-someurl
.Se eu modificar /someurl
para o seguinte, o erro desaparece;
location /someurl {
if (condition) {
return 301 $scheme://$host/xyz.html;
}
proxy_pass value;
}
Não consigo entender por que a modificação /someurl
tem impacto no arquivo /prefix-someurl
. Ou estou faltando alguma coisa em relação à avaliação de reescrita do nginx. Uma visão sobre isso seria apreciada.