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

Правильное решение:

  1. Перенаправление с www.domain.com на domain.com:
    [-]
    View Code Apache configuration
    RewriteCond %{HTTP_HOST}  ^www.(.+)$   [NC]
    RewriteRule ^(.*)         http://%1/$1 [L,R=301]
    Всё просто: если имя хоста начинается на www., отрезаем www. и выполняем редирект. Я предпочитаю перенаправление с кодом 301, у Вас могут быть свои предпочтения.
  2. Перенаправление с domain.com на www.domain.com:
    [-]
    View Code Apache configuration
    RewriteCond %{HTTP_HOST}   !^$
    RewriteCond %{HTTP_HOST}   !^www\.          [NC]
    RewriteCond %{HTTP_HOST}   (.+)$
    RewriteRule ^(.*)          http://www.%1/$1 [L,R=301]
    Посложнее: проверяем, что имя хоста не пустое и не начинается на www.. Добавляем www. к имени хоста и выполняем редирект.

Разумеется, что mod_rewrite должен быть включен (RewriteEngine On). В целях повышения производительности имеет смысл помещать код не в .htaccess, а непосредственно внутрь директивы <VirtualHost> конфигурационного файла Apache.

Здесь раасмотрен простой случай: протокол HTTPS не используется. Реализация перенаправления с использованием HTTPS остаётся домашним заданием читателю :-)

Связанные записи

21
Окт
2008

Комментарии к статье «Apache: устанавливаем редирект с www.domain.com на domain.com и наоборот» (2)  »

  1. Yohan says:

    Спасибо!

    Только что себе настроил редирект, по первому варианту - все работает!

  2. Vladimir says:

    Да просто поправлял сайт заказчику… Он умудрился так настроить редирект, что Apache просто выдавал 500 Server Error. А последней каплей была статья, описывавшая, как сделать подобный редирект (естественно, примеры были нерабочими). Поэтому я решил найти решение, которое будет работать независимо от имени домена (а также в тех случаях, когда сайт “отзывается” на несколько имен).

Подписаться на RSS-ленту комментариев к статье «Apache: устанавливаем редирект с www.domain.com на domain.com и наоборот» Trackback URL: http://blog.sjinks.org.ua/administring/352-apache-how-toredirect-from-www-and-back/trackback/

Оставить комментарий к записи «Apache: устанавливаем редирект с www.domain.com на domain.com и наоборот»

Изображения должны быть включены!

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя