Убрать двойной редирект в .htaccess

ZD
На сайте с 20.04.2011
Offline
40
4290

Суть такая. На сайте проставлено правило для редиректа всех страниц сайта без www на адрес с www. Ниже идет список 301 редиректов со старых страниц. Проблема вот в чем, при заходе на старую страницу без www сперва происходит редирект на страницу с www, а уж потом только на новую страницу.

Например http://site.ru/service/remont/ -> http://www.site.ru/service/remont/ -> http://www.site.ru/remont/

Как сделать чтобы редирект происходил сразу на новую страницу.

Вот фрагменты из файла .htaccess

RewriteCond %{HTTP_HOST} ^site.ru

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

Redirect 301 /service/remont/ http://www.site.ru/remont/

[umka]
На сайте с 25.05.2008
Offline
456
#1
ZoidbergxD:
Суть такая. На сайте проставлено правило для редиректа всех страниц сайта без www на адрес с www. Ниже идет список 301 редиректов со старых страниц. Проблема вот в чем, при заходе на старую страницу без www сперва происходит редирект на страницу с www, а уж потом только на новую страницу.

Например http://site.ru/service/remont/ -> http://www.site.ru/service/remont/ -> http://www.site.ru/remont/

А чем вас так пугает двойной редирект?


RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule ^service/remont/$ http://www.site.ru/remont/ [R=301,L]

RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
Лог в помощь!
IL
На сайте с 20.04.2007
Offline
435
#2
ZoidbergxD:
Как сделать чтобы редирект происходил сразу на новую страницу.

Все правила вида

ZoidbergxD:
Redirect 301 /service/remont/ http://www.site.ru/remont/

переписать через RewriteRule и поставить выше www-редиректа

---------- Post added 24-07-2013 at 11:04 ----------

[umka], там безусловный должен быть - одной строчки достаточно:

RewriteRule ^service/remont/$ http://www.site.ru/remont/ [R=301,L]
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
[umka]
На сайте с 25.05.2008
Offline
456
#3
ivan-lev:
[umka], там безусловный должен быть - одной строчки достаточно:
RewriteRule ^service/remont/$ http://www.site.ru/remont/ [R=301,L]

Дык тогда всё равно будет два редиректа, только в другой последовательности :)

IL
На сайте с 20.04.2007
Offline
435
#4
[umka:
тогда всё равно будет два редиректа, только в другой последовательности

Не будет же.. У второго не сработает вот это:

RewriteCond %{HTTP_HOST} ^site.ru
[umka]
На сайте с 25.05.2008
Offline
456
#5

А! Точняк :)

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