
Tengo la siguiente configuración en nginx para redirigir en un escenario determinado.
location /prefix-someurl {
if (condition) {
return 301 $scheme://$host/xyz.html;
}
proxy_pass someValue;
}
y en otro bloque hay algunas reglas de reescritura como esta
location /someurl {
if (condition) {
rewrite ^(.*)abc(.*)$ $1test/abc$2 break;
rewrite ^(.*)someurl/$(.*) $1someurl/test/index.html$2;
}
proxy_pass value;
}
La configuración anterior funciona según lo previsto. Sin embargo si para este último hago esta modificación;
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;
}
Recibo demasiados errores de redireccionamiento para acceder/prefix-someurl
.Si modifico /someurl
lo siguiente, el error desaparece;
location /someurl {
if (condition) {
return 301 $scheme://$host/xyz.html;
}
proxy_pass value;
}
No puedo entender por qué la modificación /someurl
tiene un impacto en /prefix-someurl
. ¿O me falta algo con respecto a la evaluación de reescritura de nginx? Se agradecería información sobre esto.