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