ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Нужно убрать слэш в конц е URL



2010/12/3 Vladislav V. Prodan <universite@xxxxxxx>:
> 03.12.2010 13:20, Sergey Shepelev пишет:
>> 2010/12/3 Vladislav V. Prodan <universite@xxxxxxx>:
>>> 02.12.2010 23:15, Sergey Shepelev пишет:
>>>>> как реализовать средствами nginx?
>>>>>>
>>>> location ~ (.+)/$ {
>>>>   rewrite ^ $1 permanent;
>>>> }
>>>>
>>>> Обратите внимание, что здесь вернётся 301 редирект. Дублирующийся
>>>> контент на разных урлах поисковики как раз не любят.
>>>>
>>>
>>> [emerg]: pattern "^" has less captures than referrenced in substitution
>>> "$1" in /etc/nginx/conf/vhosts/site.conf:28
>>>
>>> # nginx -V
>>> nginx version: nginx/0.7.65
>>
>> Попробуйте так
>>
>> location ~ (.+)/$ {
>>   set $uri_no_slash $1;
>>   rewrite ^ $uri_no_slash permanent;
>> }
>>
>> Если не получится, то так
>>
>> location ~ /$ {
>>   rewrite (.+)/$ $1 permanent;
>> }
>>
>> Полагаю, что второй вариант даже предпочтительнее.
>
> Наверное, я где-то и что-то не допонял.
>
> Нужно корректно обрабатывать http://site.com/bla-bla-bla
> и делать редирект 301
> http://site.com/bla-bla-bla/ --> http://site.com/bla-bla-bla
>
> Все предыдущие конструкции делали это, но при http://site.com получался
> бесконечный цикл, ибо браузер/вебсервер делал перенаправление на
> http://site.com/, а конструкция опять перенаправляла на http://site.com
>

Вы правильно поняли, а я неправильно написал. Надеюсь, финальный вариант:

location ~ .+/$ {
  rewrite (.+)/$ $1 permanent;
}
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.