Re: Помогите написать regexp для удаления лишних слешей
Pavel V.
pavel2000 at ngs.ru
Sun Sep 9 17:30:30 UTC 2012
Здравствуйте, Денис.
Вы писали 9 сентября 2012 г., 17:31:24:
> Какое то время была ошибка в урлах и яндекс проиндексировал страницы вида
> /category/subcategory//
> Теперь пытаюсь убрать такие ссылки 302 редиректом (убрать 2 и более
> слеша на конце)
> if ($request_uri ~ "^(.+)/{2,}$"){
> rewrite "^(.+)/{2,}$" $1 permanent;
> }
> Не выходит
> if ($request_uri ~ "^(.*)/+$"){
> rewrite "^(.*)/+$" $1 permanent;
> }
А дописать слеш в реврайт - не вариант?
Вам надо такой if (протестировано) :
if ($request_uri ~ "^(.*)//+$"){
rewrite "^(.*)/+$" $1/ permanent;
}
Кроме того: http://wiki.nginx.org/IfIsEvil и надо написать как-то так (не проверено) (требуется 0.8.42+)
location ~* ^(?<varname>.*/)/+$ {
return 302 $varname;
}
http://nginx.org/ru/docs/http/ngx_http_core_module.html#merge_slashes
> Обрезает все слеши , так как модификатор + эквивалент {1,} но мне бы
> хотелось {2,} почему такая запись не работает ?
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
--
С уважением,
Pavel mailto:pavel2000 at ngs.ru
Подробная информация о списке рассылки nginx-ru