Apache: устанавливаем редирект с www.domain.com на domain.com и наоборот
Заезженная до дыр тема, обсуждаемая на всех форумах про Apache и mod_rewrite, но, тем не менее, не потерявшая своей актуальности до сих пор. Правильное решение: Перенаправление с www.domain.com на domain.com: RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*) http://%1/$1 [L,R=301] Всё просто: если имя хоста начинается на www., отрезаем www. и выполняем редирект. Я предпочитаю перенаправление с [...]
← Вернуться к полной версии записи «Apache: устанавливаем редирект с www.domain.com на domain.com и наоборот»…
Автор: Vladimir; опубликовано в: Администрирование; метки: Apache, mod_rewrite, redirectОкт
2008
Комментарии к статье «Apache: устанавливаем редирект с www.domain.com на domain.com и наоборот» (31) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Apache: устанавливаем редирект с www.domain.com на domain.com и наоборот»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Спасибо!
Только что себе настроил редирект, по первому варианту – все работает!
Да просто поправлял сайт заказчику… Он умудрился так настроить редирект, что Apache просто выдавал 500 Server Error. А последней каплей была статья, описывавшая, как сделать подобный редирект (естественно, примеры были нерабочими). Поэтому я решил найти решение, которое будет работать независимо от имени домена (а также в тех случаях, когда сайт “отзывается” на несколько имен).
спасибо, отличный кодик. подскажи еще код редиректа с одного домена на другой. например: при заходе на site.com перекидывает на site2.com. буду благодарен тебе.
Так должно работать:
Это все хорошо. Но при некоторых настройках сервака, эти функции не пашут. Например при FastCGI
Да ну? А ничего, что переписывание URL’ов происходит до работы всяких там FastCGI?
подскажи плиз, на виртуальном хосте прописываю указанные выше правила редиректа, а при попытке зайти на страницу у меня в конце адреса прибавляется дополнительный слэш, как с этим бороться, уже практически все перепробывал.
И еще, обязательно ли указывать
ServerAliasв директиве в видеwww.domain.com domain.comВозможно, что слэш добавляет софт, который Вы используете. Нужно смотреть на сайт, с ходу я вряд ли что скажу.
ServerAlias— в общем случае, да.Поковырял правило, сделал правило таким образом
http://%1$1 [L,R=301]все заработало, с www на без www редирект проходит нормально. Все равно спасибо.Добрый день Владимир,
так подскажите пожалуйста, как выполнить редирект с
https://www.domain.comнаhttps://domain.com?Заранее спасибо.
Роман, под рукой Apache/SSL сейчас нет, но должно быть так:
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} (.+)$
RewriteRule ^(.*) https://www.%1/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]
С www на не-www не работает…
Упс, там опечатка. Вместо
%{HHTPS}должно быть%{HTTPS}.я это исправил, но все равно не работает, могут быть проблемы из-за чпу?
заранее спасибо.
Добрый день Владимир,
подскажите как выполнить редирект с
http://www.serkin.domain.comнаhttp://serkin.domain.com