| Nginx-ru mailing list archive (nginx-ru@sysoev.ru) [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: Редирект директории на 	урл со слешем в конце
 
To: nginx-ru@xxxxxxxxxSubject: Re: Редирект директории на 	урл со слешем в концеFrom: Глазачев Владимир <pansg@xxxxxxxxx>Date: Mon, 11 Jul 2011 19:15:55 +0400Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail;	t=1310397356; bh=ox2ihfu4ftt74SksAw+pDLQrkaQVylbjImzdfAPWvrg=;	h=From:To:In-Reply-To:References:Subject:MIME-Version:Message-Id:	Date:Content-Transfer-Encoding:Content-Type;	b=sp+y5Rc82yuWZQtNtc2tUrk21c49Fj3u7aRaM8nIjQ/TY0JXXWhvHDIhheKrEan4G	/3GszYo0l+vqYslq7XH8RQ5pMR6TERVgWk+ACtlnkEv6StIsw8nNAZU/YbxWemySPi	XcGbLeMU5Fky5d8PbUlhNnp/aM2avxudy3netlb8=In-reply-to: <20110711143434.GR42265@xxxxxxxxxx>References: <806761310391630@xxxxxxxxxxxxxxx>	<20110711143434.GR42265@xxxxxxxxxx> 
 
11.07.2011, 18:34, "Maxim Dounin" <mdounin@xxxxxxxxxx>:
> 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@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
 |