Перезапись и возврат Nginx мешают другому блоку местоположения
У меня есть следующая конфигурация в nginx для перенаправления в определенном сценарии.
location /prefix-someurl {
if (condition) {
return 301 $scheme://$host/xyz.html;
}
proxy_pass someValue;
}
а в другом блоке есть такие правила перезаписи
location /someurl {
if (condition) {
rewrite ^(.*)abc(.*)$ $1test/abc$2 break;
rewrite ^(.*)someurl/$(.*) $1someurl/test/index.html$2;
}
proxy_pass value;
}
Вышеуказанная конфигурация работает так, как задумано. Однако если для последнего я сделаю эту модификацию;
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;
}
Я получаю слишком много ошибок перенаправления для доступа.Если я изменю следующее, ошибка исчезнет;
location /someurl {
if (condition) {
return 301 $scheme://$host/xyz.html;
}
proxy_pass value;
}
Я не могу понять, зачем изменять/someurl
оказывает влияние на/prefix-someurl
. Или я что-то упускаю в отношении оценки перезаписи nginx. Понимание этого будет оценено по достоинству.