A reescrita e o retorno do Nginx interferem em diferentes blocos de localização

A reescrita e o retorno do Nginx interferem em diferentes blocos de localização

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 /someurlpara 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 /someurltem 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.

informação relacionada