La reescritura y el retorno de Nginx interfieren con diferentes bloques de ubicación

La reescritura y el retorno de Nginx interfieren con diferentes bloques de ubicación

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 /someurllo 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 /someurltiene 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.

información relacionada