Задать вопрос

Редирект с www.example.com на example.com (apache2, ubuntu 10.04)?

Всем доброго времени суток!

Столкнулся с такой проблемой — нужно организовать редирект на сайте с www.example.com на example.com

Гугл дал два основных совета: это mod_rewrite с условиями редиректа типа
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


Либо же непосредственный редирект с использованием виртуальных хостов типа
<VirtualHost *>
  ServerName www.example.com
  Redirect 301 / http://example.com/
</VirtualHost>


Второй способ у меня не работает (файрфокс выдает ошибку о бесконечных редиректах), первый же работает, но есть одно но: если дописываю к основному адресу дополнительные параметры, например www.example.com/test_page/, то никакого редиректа не происходит.

Подскажите пожалуйста, как исправить?

P.S. Сам сайтами не занимаюсь, вникать в синтаксис этого мода желания нет… Только в самом крайнем случае.

Спасибо!
  • Вопрос задан
  • 12475 просмотров
Подписаться 8 Оценить Комментировать
Решения вопроса 1
taliban
@taliban
php программист
Разница в одном символе $ в первой строке
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
@vadkuz
в .htaccess

www
RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
RewriteRule ^(.*)$ domain.com/$1 [R=301,L]


www
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ www.domain.com/$1 [R=301,L]


если вдруг не пашет добавь над выбранным вариантом
Options +FollowSymLinks
RewriteEngine On
Ответ написан
Комментировать
bost84
@bost84
Если перед апачем стоит nginx то организовать редирект лучше им
Ответ написан
Комментировать
serso
@serso
RewriteEngine on
RewriteCond %{HTTP_HOST} !^se\.solovyev\.org$
RewriteRule ^ se.solovyev.org%{REQUEST_URI} [R=301,L]

Код на гитхабе
Ответ написан
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ %1%{REQUEST_URI} [R=301,L]


вот самый грамотный вариант из бойлерплейта. Практически то же что в комменте н.1
Ответ написан
Комментировать
vikkyshostak
@vikkyshostak
< This head full of dreams.
Вариант, которым я всегда пользуюсь:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы