Как сделать редирект (301, 302). Общая тема

V0
На сайте с 28.10.2014
Offline
33
#561

В .htaccess делаю редирект с не www на www для всего сайта

RewriteCond %{HTTP_HOST} ^site\.com$ [NC]

RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]

Как исключить из такого редиректа раздел /dron/ ?

Чтобы все ссылки типа

http://site.com/dron/dfsdfdsj

http://site.com/dron/343423

так и открывались.

Пробовал так:

RewriteCond %{HTTP_HOST} ^site\.com$ [NC]

RewriteCond %{REQUEST_URI} !^/dron/

RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]

Не работает. Все равно редиректит на http://www.site.com/index.php ....

Z
На сайте с 13.12.2009
Offline
452
#562

Вопрос такой.. А зачем?

Консультации, seo-аудиты - https://seo-consulting.su Профессионально и без воды
V0
На сайте с 28.10.2014
Offline
33
#563

Просто дальше в коде сайта, для такого раздела предусмотрен отдельный редирект.

Например такой http://site.com/dron/dfsdfdsj на http://www.site.com/newdron/ssssssss т.п.

А сейчас ситуация складывается такая, что ссылка http://site.com/dron/dfsdfdsj www-редиректом, сначала переадресовывается на такую же но с www: http://www.site.com/dron/dfsdfdsj

А уже потом с нее, на нужную - http://www.site.com/newdron/ssssssss

Т.е. имеет место двойной 301 редирект. Как такого можно избежать?

Z
На сайте с 13.12.2009
Offline
452
#564
viktor02:
Просто дальше в коде сайта, для такого раздела предусмотрен отдельный редирект.

Уберите отдельный редирект и настройте один общий на весь сайт

V0
На сайте с 28.10.2014
Offline
33
#565

Этот раздел редиректится по определенному алгоритму. Нельзя убрать отдельный редирект. Там десятки тысяч ссылок в индексе. И каждая ссылка должна редиректится на строго определенную соответствующую ей ссылку. Вот зачем нужен этот отдельный редирект... И общий редирект на www тоже нельзя убрать - он должен работать для всего сайта (кроме этого отдельного раздела).

Вот поэтому и возникла мысль - отключить редирект www для одного раздела.

J
На сайте с 20.02.2014
Offline
120
jkm
#566

viktor02, просто добавить RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{HTTP_HOST} ^site\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/dron/
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]
V0
На сайте с 28.10.2014
Offline
33
#567

Отлично! Все работает. Спасибо большое!

Anibrut
На сайте с 28.05.2014
Offline
74
#568

Всем привет, подскажите как сделать следующие 301:

были товары в категориях то уж очень захотелось клиенту что бы их поместить в новые созданные категории а эти соответственно стали подкатегорыями.

Так вот переадресовывать каждый товар вручную точно не вариант, товаров уж слишком много.

Как сделать переадресации для товаров если к примеру были они здесь

http://site.net/dezinfekciya-ruk/tovar

http://site.net/dezinfekciya-ruk/tovar2

http://site.net/dezinfekciya-ruk/tovar3

а стал тут

http://site.net/dezinfektsiya/dezinfekciya-ruk/tovar

http://site.net/dezinfektsiya/dezinfekciya-ruk/tovar2

http://site.net/dezinfektsiya/dezinfekciya-ruk/tovar3

сайт на опенкарт

J
На сайте с 20.02.2014
Offline
120
jkm
#569

Сразу после RewriteEngine On добавить:

RewriteRule ^dezinfekciya-ruk/.*$ /dezinfektsiya/$0 [R=301,L]

Можно указать сразу несколько категорий:

RewriteRule ^(cat1|cat2|cat3)/.*$ /new/$0 [R=301,L]
nichy
На сайте с 05.01.2017
Offline
44
#570

Привет!

Вопросик. Гугл не помог ((

После того как прописал 301 в htaccess, на сколько я понимаю, можно свободно удалять старые файлы, с которых делался редирект. Верно?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий