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 и наоборот»…

Автор: ; опубликовано в: Администрирование; метки: Apache, mod_rewrite, redirect
21
Окт
2008

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

  1. Спасибо!

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

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

  3. evs

    спасибо, отличный кодик. подскажи еще код редиректа с одного домена на другой. например: при заходе на site.com перекидывает на site2.com. буду благодарен тебе.

  4. PaLyCH

    Это все хорошо. Но при некоторых настройках сервака, эти функции не пашут. Например при FastCGI

  5. codc

    подскажи плиз, на виртуальном хосте прописываю указанные выше правила редиректа, а при попытке зайти на страницу у меня в конце адреса прибавляется дополнительный слэш, как с этим бороться, уже практически все перепробывал.
    И еще, обязательно ли указывать ServerAlias в директиве в виде www.domain.com domain.com

    • Возможно, что слэш добавляет софт, который Вы используете. Нужно смотреть на сайт, с ходу я вряд ли что скажу.

      ServerAlias — в общем случае, да.

  6. codc

    Поковырял правило, сделал правило таким образом http://%1$1 [L,R=301] все заработало, с www на без www редирект проходит нормально. Все равно спасибо.

  7. Роман

    Добрый день Владимир,

    так подскажите пожалуйста, как выполнить редирект с https://www.domain.com на https://domain.com?

    Заранее спасибо.

    • Роман, под рукой Apache/SSL сейчас нет, но должно быть так:

      1. С не-www на www:
        [-]
        View Code Apache configuration
        RewriteCond %{HTTPS}       on                [NC]
        RewriteCond %{HTTP_HOST}   !^$
        RewriteCond %{HTTP_HOST}   !^www\.           [NC]
        RewriteCond %{HTTP_HOST}   (.+)$
        RewriteRule ^(.*)          https://www.%1/$1 [L,R=301]
      2. С www на не-www:
        [-]
        View Code Apache configuration
        RewriteCond %{HTTPS}      on           [NC]
        RewriteCond %{HTTP_HOST}  ^www\.(.+)$  [NC]
        RewriteRule ^(.*)         http://%1/$1 [L,R=301]
  8. Роман

    С www на не-www не работает…

  9. Роман

    я это исправил, но все равно не работает, могут быть проблемы из-за чпу?

    заранее спасибо.

  10. Виктор

    Добрый день Владимир,

    подскажите как выполнить редирект с http://www.serkin.domain.com на http://serkin.domain.com

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

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

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

गते गते पारगते पारसंगते बोधि स्वाहा