<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">не вкусовщина</div>часто очень не хватает простейших and/&& и or/||<div class=""><br class=""></div><div class="">вот чтобы такое не писать:</div><div class=""><br class=""></div><div class=""><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">if</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> (</span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">$http_user_agent</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-regexp" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">~ "HackYou")</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> {
</span><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">set</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">$block</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">"A"</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class="">;
}
</span><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">if</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> (</span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">$method</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> = </span><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">"POST"</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class="">) {
</span><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">set</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">$block</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">"<span class="hljs-variable" style="color: rgb(152, 104, 1);">${block}</span>B"</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class="">;
}
</span><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">if</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> (</span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">$uri</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> ~ </span><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">“^/admin/some/url"</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class="">) {
</span><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">set</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">$block</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">"<span class="hljs-variable" style="color: rgb(152, 104, 1);">${block}</span>C"</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class="">;
}
</span><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">if</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> (</span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">$block</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> = </span><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">"ABC"</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class="">) {
</span><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">return</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-number" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2;">403</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; widows: 2; background-color: rgb(251, 253, 255);" class="">;
}</span></div><div class=""><div style="orphans: 2; widows: 2;" class=""><font color="#383a42" face="Menlo, Monaco, Consolas, Courier New, monospace" class=""><span style="caret-color: rgb(56, 58, 66); font-size: 14px; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class=""><br class=""></span></font></div><div style="orphans: 2; widows: 2;" class=""><font color="#383a42" face="Menlo, Monaco, Consolas, Courier New, monospace" class=""><span style="caret-color: rgb(56, 58, 66); font-size: 14px; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class="">vs условно:</span></font></div><div style="orphans: 2; widows: 2;" class=""><font color="#383a42" face="Menlo, Monaco, Consolas, Courier New, monospace" class=""><span style="caret-color: rgb(56, 58, 66); font-size: 14px; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class=""><br class=""></span></font></div><div style="orphans: 2; widows: 2;" class=""><font color="#383a42" face="Menlo, Monaco, Consolas, Courier New, monospace" class=""><span style="caret-color: rgb(56, 58, 66); font-size: 14px; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class="">if/eif (</span></font><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">$http_user_agent</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-regexp" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">~ “HackYou” && </span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">$method</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class=""> = </span><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">“POST” && </span><span class="hljs-variable" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">$uri</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class=""> ~ </span><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">“^/admin/some/url”) {</span></div><div style="orphans: 2; widows: 2;" class=""><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space:pre"> </span></span><span class="hljs-attribute" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">return</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class=""> </span><span class="hljs-number" style="color: rgb(152, 104, 1); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">403</span><span style="color: rgb(56, 58, 66); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class="">;</span></div><div style="orphans: 2; widows: 2;" class=""><span class="hljs-string" style="color: rgb(80, 161, 79); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; font-variant-ligatures: normal; white-space: pre-wrap;">}</span></div><div style="orphans: 2; widows: 2;" class=""><font color="#383a42" face="Menlo, Monaco, Consolas, Courier New, monospace" class=""><span style="caret-color: rgb(56, 58, 66); font-size: 14px; white-space: pre-wrap; background-color: rgb(251, 253, 255);" class=""><br class=""></span></font></div><div><br class=""><blockquote type="cite" class=""><div class="">On 29 Sep 2020, at 21:49, Илья Шипицин <<a href="mailto:chipitsine@gmail.com" class="">chipitsine@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">это вкусовщина же. вы готовы писать "eif", чтобы выразить свою мысль в определенном синтаксисе.</div><div class="">сейчас вы точно так же выражаете свою мысль через map-ы.</div><div class=""><br class=""></div><div class="">по сути просто диалекты языка<br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 29 сент. 2020 г. в 22:41, Alexey Galygin <<a href="mailto:mif@me.com" class="">mif@me.com</a>>:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">иногда трудно обойтись без дополнительной логики,<br class="">
которую ради такой мелочи отдавать на backend грустно<br class="">
<br class="">
и речь про улучшение поведения исключительно с обратной совместимостью<br class="">
<br class="">
если совсем никак, то можно добавить условно extended if — eif<br class="">
<br class="">
<br class="">
> On 29 Sep 2020, at 19:47, fox <<a href="mailto:red-fox0@ya.ru" target="_blank" class="">red-fox0@ya.ru</a>> wrote:<br class="">
> <br class="">
> 1) может, потому что конфиг - это не язык программирования?<br class="">
> <br class="">
> 2) изменение поведения сломает тысячи существующих систем.<br class="">
> <br class="">
> <br class="">
> 29.09.2020 23:31, Alexey Galygin пишет:<br class="">
>> присоединяюсь к вопросу:<br class="">
>> <br class="">
>> почему бы не сделать if нормальным? чтобы без артефактов… и немного мощнее<br class="">
>> <br class="">
>> нам вот тоже приходится делать по несколько map, чтобы логику чуть более сложную построить…<br class="">
>> и это ужас<br class="">
>> <br class="">
>>> On 29 Sep 2020, at 19:29, Sergey Kandaurov <<a href="mailto:pluknet@nginx.com" target="_blank" class="">pluknet@nginx.com</a>> wrote:<br class="">
>>> <br class="">
>>> <br class="">
>>>> On 29 Sep 2020, at 17:12, Ilya Evseev <<a href="mailto:nginx-forum@forum.nginx.org" target="_blank" class="">nginx-forum@forum.nginx.org</a>> wrote:<br class="">
>>>> <br class="">
>>>> Имеется nginx 1.19.2 со следующей настройкой:<br class="">
>>>> <br class="">
>>>> server {<br class="">
>>>> location / {<br class="">
>>>> if ($http_user_agent ~ "TestAgent") { }<br class="">
>>>> try_files $uri $uri/ /index.html;<br class="">
>>>> }<br class="">
>>>> }<br class="">
>>>> <br class="">
>>>> Почему попадание в if меняет логику работы последующего try_files?<br class="">
>>> <br class="">
>>> <a href="https://wiki.nginx.org/IfIsEvil" rel="noreferrer" target="_blank" class="">https://wiki.nginx.org/IfIsEvil</a><br class="">
>>> <br class="">
>>> -- <br class="">
>>> Sergey Kandaurov<br class="">
>>> <br class="">
>>> _______________________________________________<br class="">
>>> nginx-ru mailing list<br class="">
>>> <a href="mailto:nginx-ru@nginx.org" target="_blank" class="">nginx-ru@nginx.org</a><br class="">
>>> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank" class="">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br class="">
>> <br class="">
>> _______________________________________________<br class="">
>> nginx-ru mailing list<br class="">
>> <a href="mailto:nginx-ru@nginx.org" target="_blank" class="">nginx-ru@nginx.org</a><br class="">
>> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank" class="">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br class="">
>> <br class="">
> <br class="">
> _______________________________________________<br class="">
> nginx-ru mailing list<br class="">
> <a href="mailto:nginx-ru@nginx.org" target="_blank" class="">nginx-ru@nginx.org</a><br class="">
> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank" class="">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br class="">
<br class="">
_______________________________________________<br class="">
nginx-ru mailing list<br class="">
<a href="mailto:nginx-ru@nginx.org" target="_blank" class="">nginx-ru@nginx.org</a><br class="">
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank" class="">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>
_______________________________________________<br class="">nginx-ru mailing list<br class=""><a href="mailto:nginx-ru@nginx.org" class="">nginx-ru@nginx.org</a><br class="">http://mailman.nginx.org/mailman/listinfo/nginx-ru</div></blockquote></div><br class=""></div></body></html>