merge_slashes
Gena Makhomed
gmm на csdoc.com
Пн Мар 20 17:06:10 UTC 2017
On 20.03.2017 18:57, Илья Шипицин wrote:
>>> проще отключить merge и разруливать уже в приложении
>> отключать merge_slashes нельзя, тогда сломается вся логика работы:
>> http://nginx.org/ru/docs/http/ngx_http_core_module.html#merge_slashes
> сломается только, если у вас используются префиксные локейшены.
префиксные локейшены используются, поэтому merge_slashes off не подходит
>>> Локейшном с регуляркой ситуация не разыгрывается?
>> тема с merge_slashes redirect достаточно популярная,
>> странно что это до сих пор еще никто не реализовал в nginx.
> какой-нибудь rewrite_by_lua ? или аналог на nginScript
как оказалось, можно и просто "программированием на конфигах nginx":
# remove multiple sequences of forward slashes
# The $uri variable with have duplicate slashes removed by default via
[merge_slashes on] - just need to rewrite back to $uri
# note: use of the "^[^?]*?" pattern avoids any matches in the
querystring section of URI - which would cause an infinite redirect loop
if ($request_uri ~ "^[^?]*?//") {
rewrite "^" $scheme://$host$uri permanent;
}
но добавлять этот фрагмент кода в каждый сайт... нет ли проще варианта?
например, сделать merge_slashes redirect значением по умолчанию?
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru