Перезапись и возврат 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. Понимание этого будет оценено по достоинству.

0 ответов

Другие вопросы по тегам