<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">20 марта 2017 г., 22:06 пользователь Gena Makhomed <span dir="ltr"><<a href="mailto:gmm@csdoc.com" target="_blank">gmm@csdoc.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 20.03.2017 18:57, Илья Шипицин wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
проще отключить merge и разруливать уже в приложении<br>
</blockquote></blockquote></blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
отключать merge_slashes нельзя, тогда сломается вся логика работы:<br>
<a href="http://nginx.org/ru/docs/http/ngx_http_core_module.html#merge_slashes" rel="noreferrer" target="_blank">http://nginx.org/ru/docs/http/<wbr>ngx_http_core_module.html#merg<wbr>e_slashes</a><br>
</blockquote></blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
сломается только, если у вас используются префиксные локейшены.<br>
</blockquote>
<br></span>
префиксные локейшены используются, поэтому merge_slashes off не подходит<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Локейшном с регуляркой ситуация не разыгрывается?<br>
</blockquote></blockquote></blockquote>
<br>
</span><span class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
тема с merge_slashes redirect достаточно популярная,<br>
странно что это до сих пор еще никто не реализовал в nginx.<br>
</blockquote></blockquote>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
какой-нибудь rewrite_by_lua ? или аналог на nginScript<br>
</blockquote>
<br></span>
как оказалось, можно и просто "программированием на конфигах nginx":<br>
<br>
# remove multiple sequences of forward slashes<br>
# The $uri variable with have duplicate slashes removed by default via [merge_slashes on] - just need to rewrite back to $uri<br>
# note: use of the "^[^?]*?" pattern avoids any matches in the querystring section of URI - which would cause an infinite redirect loop<br>
if ($request_uri ~ "^[^?]*?//") {<br>
        rewrite "^" $scheme://$host$uri permanent;<br>
}<br>
<br>
но добавлять этот фрагмент кода в каждый сайт... нет ли проще варианта?<br>
<br>
например, сделать merge_slashes redirect значением по умолчанию?</blockquote><div><br></div><div>это очень печальная тема - менять поведение по умолчанию.<br></div><div>имхо, хорошим дизайном является оставить как есть + сделать крутилку, для тех, кто хочет по-другому<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
<br>
-- <br>
Best regards,<br>
 Gena<br>
<br>
______________________________<wbr>_________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailm<wbr>an/listinfo/nginx-ru</a></div></div></blockquote></div><br></div></div>