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

Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.





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