Re: Редирект директории на урл со слешем в конце

Глазачев Владимир pansg на yandex.ru
Пн Июл 11 15:15:55 UTC 2011



11.07.2011, 18:34, "Maxim Dounin" <mdounin на mdounin.ru>:
> Hello!
>
> On Mon, Jul 11, 2011 at 05:40:29PM +0400, Глазачев Владимир wrote:
>
>>  Добрвый день всем.
>>
>>  Возник вопрос в целях SEO, как лучше организовать редирект с
>>  запроса без слеша на конце, на запрос со слешом на конце  (ессно
>>  это касается запросов идущих на директорию) например:
>>
>>  www.domain.com/shop -> www.domain.com/shop/
>>
>>  И это, естественно не должно срабатывать, на урлы такого вида:
>>  www.domain.com , www.domain.com/news/news.html или
>>  www.domain.com/file.php?get_parametrs
>
> Для статики nginx так поступает автоматически, т.е. если он
> обнаруживает запрос к каталогу без "/" в конце - будет возвращён
> редирект на тот же адрес, но с добавлением "/".

Да, совершенно верно, для статики nginx так и поступает, но в данном случае такие линки обрабатываются бакендом. Конечно, если решение не найдется на фронтенде так и поступим


> Если у вас url'ы обрабатываются бекендом - это либо надо делать
> бекендом же, либо тщательно выписывать nginx'у правила что и куда
> редиректить (иначе откуда он узнает, что "new.shop" редиректить
> надо, а "new.shtml" - не надо?).

Ну тут вроде-бы довольно простые правила, что-то вроде: редиректить все, кроме ссылок заканчивающихся на файл ( т.е. с раширением) , все кроме каталогов заканчивающихся на слеш, урлов с гет  параметрами

>
> Наиболее простой (и безопасный) способ "тщательного выписывания
> правил" - сделать location'ы под нужные url'ы вида
>
>     location /shop/ {
>         fastcgi_pass/proxy_pass/...
>     }
>
> В этом случае запрос к "/shop" будет трактоваться как запрос к
> каталогу, и nginx автоматически сделает редирект на "/shop/".
>

Да, верно, но таких локейшенов будет великое множество и при изменении придется переделывать конфиг, хочется конечно избежать таких ситуаций,  по-возможности, что-то универсальное

> Maxim Dounin
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru



Подробная информация о списке рассылки nginx-ru