<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Здравствуйте!</p>
<p>Вопрос коротко: является ли <br>
</p>
<p>rewrite ... redirect на 100% безопасным при использовании if
внутри location.</p>
<p><br>
</p>
<p>Подробнее:<br>
</p>
<p>В
<a class="moz-txt-link-freetext" href="https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/">https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/</a></p>
<p>
<blockquote type="cite">
<p>The only 100% safe things which may be done inside if in a
location context are:</p>
<ul class="simple">
<li><a class="reference external"
href="https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return">return</a>
...;</li>
<li><a class="reference external"
href="https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite">rewrite</a>
... last;</li>
</ul>
</blockquote>
</p>
<p>то есть единственным вариантов rewrite на 100% безопасным с if в
location написан rewrite с last. Учитывая написанное в статье
далее и моё понимание nginx предполагаю, что rewrite можно не
только с last, но так же с redirect и permanent, так как исключают
выполнение других директив в рамках этого локейшена.<br>
</p>
<p>"Возможно опасными" тут могут быть только break и, вероятно,
отсуствие флагов rewrite так как оставляют возможность выполнения
других директив не из модуля rewrite.</p>
<p>Я прав?<br>
</p>
<p>С уважением, Иван.<br>
</p>
</body>
</html>