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