Как сделать перенаправление домена. Дополнительные параметры переадресации. Настройка переадресации субдомена

Если на вашем сервере включен модуль mod_rewrite , то для настройки перенаправления посетителей с одного доменного имени на другое вы можете использовать соответствующие директивы в файле .htaccess . Ниже приведены примеры таких директив. Код директив перенаправления нужно добавить в начало файла .htaccess в корневом каталоге сайта на вашем сервере (сервере хостинг-провайдера).

Перенаправление с одного домена на другой

RewriteEngine On
RewriteCond %{HTTP_HOST} domain1.ru
RewriteRule (.*) http://domain2.ru /$1

Перенаправление с основного домена на www-поддомен

Вместо www -поддомена можно аналогично настроить перенаправление на любой другой поддомен, например, с domain.ru на shop .domain.ru .

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www .)
RewriteRule ^(.*)$ http://www .%{HTTP_HOST}/$1

Перенаправление с www-поддомена на основной домен

Вместо www -поддомена можно аналогично настроить перенаправление с любого другого поддомена, например, с shop .domain.ru на domain.ru .

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www .(.+)$
RewriteRule ^(.*)$ http://%1/$1

При использовании предложенных директив посетители сайта будут перенаправляться с одного доменного имени на другое с сохранением параметров адресной строки . Параметры адресной строки - это фрагмент адреса страницы (URL), который следует за доменным именем сайта. Например, в адресе http://domain.ru/index.php?categoryID=123&offset=20 параметрами адресной строки является фрагмент, выделенный полужирным шрифтом.

Совет 1 : для того чтобы параметры адресной строки не сохранялись при перенаправлении, удалите из 3-й строки кода фрагмент $1 .

Совет 2 : если вам нужно, чтобы при наборе адреса сайта отображалось содержимое сайта на другом доменном имени без перенаправления посетителя, измените содержимое между квадратными скобками в 3-й строке с на [L] .

Очень часто сайт первоначально создаётся на каком-нибудь тестовом домене третьего уровня. Затем при подключении основного домена второго уровня возникает проблема, так как обычно поисковые системы успевают проиндексировать сайт, работающий под доменом третьего уровня. Кроме того, существует проблема с доступностью сайта с www и без www , т.е. если сайт доступен сразу по двум адресам, то возникают дубли, приводящие к уменьшению веса сайта. Также есть проблема при доступности сайта под различными доменами, в том числе кириллическими, например, moy-sayt.ru, moysayt.ru, moysayt.su moy-sayt.su, moy-sayt.com, moysayt.com, мойсайт.рф, мой-сайт.рф и т.д. и т.п. Поисковые системы могут запутаться какой из этих адресов является основным, сканировать ли всё сразу или только один. В общем чтоб исправить эту ситуацию, и помочь поисковым системам и обычным пользователям оказываться на правильном домене, необходимо правильно настроить ваш веб сервер. Мы подробно остановимся на двух веб серверах — apache и nginx .

Apache

Для того чтоб происходила переадресация 301 (постоянная) необходимо чтоб был установлен модуль rewrite и добавлены следующие строчки в файле .htaccess


Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} robots.txt$
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} !^www\.moy-domen\.ru
RewriteRule ^(.*)$ http://www.moy-domen.ru/$1

Строки RewriteCond %{REQUEST_FILENAME} robots.txt$ и RewriteRule ^([^/]+) $1 [L] отключают редирект для robots.txt, делается это исключительно для поисковика Яндекс, соответственно в файле robots.txt добавляется строчка, которая сообщает поисковой системе Яндекс о принадлежности сайта к определённому хосту, вне зависимости от того под каким доменом работает, так как в противном случае будет редирект и Яндекс не сможет получить доступ к robots.txt вторичных доменов вашего сайта:

User-agent: Yandex
Host: www.moy-domen.ru

Строки RewriteCond %{HTTP_HOST} !^www\.moy-domen\.ru и RewriteRule ^(.*)$ http://www.moy-domen.ru/$1 означают, что если домена не соответствует www.moy-domen.ru, то произвести редирект на домен www.moy-domen.ru.
Так намного правильнее делать, вместо того чтоб перечислять все домены подряд. Соответственно в ServerAlias все домены нужно перечислить. Таким образом если нужно делать редирект на moy-domen.ru, то команда должна выглядеть следующим образом:

RewriteCond %{HTTP_HOST} !^moy-domen\.ru
RewriteRule ^(.*)$ http://moy-domen.ru/$1

Nginx

#Чтоб не было редиректа robots.txt
location ^~ /robots.txt {
}

#Если домен не соответствует www.moy-domen.ru, то переадресовать 301 на www.moy-domen.ru
location / {
if ($host != www.moy-domen.ru) {
rewrite (.*) http://www.moy-domen.ru$1 permanent;
}
index index.php index.html;
}

Обязательно нужно учесть что между != и www.moy-domen.ru должен быть пробел!Соответственно также добавляем строчку в robots.txt для яндекса (как показано выше), а в server_name перечисляем все наши домены. В отличие от апача, nginx необходимо перегрузить:

#проверка конфигурационного файла nginx
nginx -t
#безопасная перегрузка nginx
nginx -s reload


Услуга Переадресация домена (называемая также Web-forwarding, URL-forwarding, Web-redirect, HTTP-redirect) обеспечивает перенаправление запроса к Вашему доменному имени на веб-страницу с другим адресом. Все пользователи, набравшие в строке адреса Ваше доменное имя (или пришедшие на него по ссылке), попадут на веб-страницу, адрес которой Вы укажете в настройках. Использование услуги позволит Вам иметь постоянный адрес Web-страницы, который не придется менять при смене провайдера. Услуга Переадресации может использоваться при регистрации дополнительного имени для уже существующего Веб-сайта.

Для чего это нужно?

В качестве примера предлагаем рассмотреть такую ситуацию: Вы уже владеете доменом mycompany.ru сайт полноценно работает и на нем есть раздел продукции одного из Ваших поставщиков (адрес этой страницы: www.mycompany.ru/mybrand/index.html или подобный). Для лучшего продвижения товара этого поставщика Вы приобретаете целевое доменное имя: mybrand.ru и включаете для него услугу Переадресации на адрес уже существующего раздела на Вашем основном сайте www.mycompany.ru/mybrand/index.html Теперь посетители могут набирать прямой адрес сайта бренда, а Вы использовать этот адрес в прямой рекламе продукции этого бренда. Легче запомнить адрес – выше эффективность!

2domains предлагает два режима работы услуги Переадресация / Web-forwarding:

  • перенаправление запроса
  • маскировка адреса во фрейме
  • любой из вышеперечисленных режимов во множественном исполнении
Перенаправление запроса

При этом способе организации услуги Переадресация / Web-forwarding, пользователь сразу же переходит на веб-страницу, которую Вы укажете в настройках. Фреймов при этом не создается, и Ваш посетитель видит в строке URL адрес той страницы, на которую была сделана переадресация, вместо имени переадресуемого домена.

Маскировка адреса во фрейме

Если Вы не хотите, чтобы настоящий адрес веб-страницы, куда осуществляется перенаправление, присутствовал в строке URL браузеров Ваших посетителей, Вам следует выбрать этот способ. Веб-страница будет находиться внутри фрейма, и при всех переходах по ссылкам внутри этого фрейма в адресе URL посетители будут видеть доменное имя, с которого была осуществлена пересылка.

Техническая справка:
необходимо помнить, что если Вы пользуетесь этим способом пересылки и хотите установить внутри Вашей веб-страницы ссылки на другие ресурсы, в теге ссылки необходимо указать target=_top. В противном случае чужая веб-страница также будет открыта внутри Вашего фрейма, и посетитель будет видеть в окошке URL Ваше доменное имя. Пример правильного написания ссылки для этого случая: reg.ru Также необходимо иметь в виду, что истинный адрес веб-страницы, на которую осуществляется перенаправление, хотя и не отображается в строке URL, все же может быть легко вычислен любым посетителем. Пример правильного написания ссылки для этого случая:

Настройка web-forwarding

Для того, чтобы web-forwarding функционировал, необходимо
  1. настроить DNS
  2. настроить список перенаправлений
Настройка DNS.

Необходимо обеспечить, чтобы ваш домен указывал на IP-адрес нашего web-сервера (194.58.112.173). Если вы при регистрации домена на странице выбора DNS-серверов не указали опцию "Использовать сервера регистратора" (то есть, если вы указали свои собственные NS-сервера), то вам необходимо будет настроить зону для вашего домена самостоятельно. Для этого необходимо создать по крайней мере две записи ADDRESS:
@ A 194.58.112.173 www A 194.58.112.173 То есть необходимо обеспечить, чтобы имена ваш-домен.com и www.ваш-домен.com указывали на IP-адрес 194.58.112.173. Если у домена установлены DNS-сервера регистратора - данные записи создадутся автоматически.

Если при использовании DNS-серверов регистратора, в "Управлении зоной" автоматически не создались две записи (которые указаны выше) - Вы можете их создать при помощи "Автоматического добавления записей" - для этого на странице "Управление зоной DNS" в самом низу выберите из выпадающего списка "Услуга Web-forwarding".

Настройка списка перенаправлений.

Войдя как зарегистрированный пользователь, на странице "Мои домены" перейдите по ссылке "Web-forwarding" напротив нужного домена. Вы попадёте на страницу "Управление Web-перенаправлениями". На этой странице вы можете добавить любое количество перенаправлений.

Для добавления перенаправления укажите в поле "Переадресация с" относительный адрес (без имени вашего домена), с которого требуется осуществлять перенаправление, а в поле "Переадресовывать на" - URL, на который следует перенаправлять посетителей.

Например, если вы хотите добавить перенаправление со своего домена на сайт www.yandex.ru, то в поле "Переадресация с" укажите "/", а в поле "Переадресовывать на" укажите "http://www.yandex.ru". В поле "Способ переадресации" вы можете выбрать либо "перенаправление запроса" либо "маскировку адреса во фрейме".

Поле "Заголовок окна" имеет смысл только в случае использования маскировки адреса во фрейме. Указанный заголовок будет заголовком страницы (будет отображаться в качестве заголовка окна браузера).

Периодически к нам обращаются наши клиенты с одним и тем же вопросом: как сделать переадресацию с одного доменного имени на другое. Как правило, вопросы сводится к одному из двух вариантов:

  1. Ваш сайт открывается по адресу www.mycompany.ru и mycompany.ru. Вы хотите, чтобы при обращении к адресу сайта с www шла переадресация на ту же страницу на домене без www (http://www.mycompany.ru/news/ » http://mycompany.ru/news/)
  2. У вас есть основной домен mycompany.ru и альтернативный my-company.ru. Нужно сделать чтобы при наборе в браузере адреса my-company.ru посетитель автоматически переводился на основной домен mycompany.ru

Первая задача наиболее простым способом решается в разделе . Слева от названия сайта необходимо кликнуть на иконку с тремя горизонтальными полосками и выбрать "Тонкие настройки". Далее активировать "Включить перенаправление". После этого остается выбрать на какой домен необходимо перенаправлять все запросы. Готово!

Показать как можно решить первую задачу при помощи mod_rewrite

Также первую задачу можно решить с помощью mod_rewrite . Чтобы настроить переадресацию с адресов, начинающихся с www на аналогичные без www (http://www.mycompany.ru/news/ » http://mycompany.ru/news/), нужно в файл.htaccess в корневой папке www вашего сайта прописать следующие строки:

RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.mycompany\.ru$ RewriteRule ^(.*)$ http://mycompany.ru/$1

Если вам наоборот нужно чтобы адреса без www автоматически переадресовывались на те же адреса с www (http://mycompany.ru/news/ » http://www.mycompany.ru/news/), например как сделано на нашем сайте: автоматически переадресует вас на , то правила mod_rewrite выглядят следующим образом:

RewriteEngine On RewriteCond %{HTTP_HOST} ^mycompany\.ru$ RewriteRule ^(.*)$ http://www.mycompany.ru/$1

Вторая задача может быть решена также при помощи правил mod_rewrite , но если вы размещаетесь на тарифном плане Лайт, Стандарт или Профи, то ограничены числом доменов, включенных в тариф. Поэтому настройка сайта с одним только файлом.htaccess лишит вас еще одного домена в квоте по тарифу, что не всегда приемлемо. В этом случае мы предлагаем воспользоваться сервисом .

Нужно удалить A-запись для домена my-company.ru из и затем создать . При этом для домена my-company.ru будет автоматически создана новая A-запись, которая будет указывать на сервис редиректов.

Можно ли решить первую задачу тоже с помощью сервиса Редиректоры панели? Да, можно, но это приведет к тому, что вместо переадресации http://www.mycompany.ru/news/ » http://mycompany.ru/news/ вы получите переадресацию http://www.mycompany.ru/news/ » http://mycompany.ru/, то есть любой url на переадресуемом домене будет вести только на какую-то одну конкретную страницу домена назначения. Вряд ли это то, что вам нужно.

Я предлагаю такой вариант:

Шаг 1. Откройте файл-менеджер

Откройте любой файл-менеджер и зайдите в корневую папку домена, с которого хотите сделать переадресацию на другой домен

Шаг 2. Скачайте архив

Скачайте файлы, которые я прикрепил к данной статье

Шаг 3. Закачайте файлы в корень сайта

Закачайте файл index.php и htaccess в корень сайта

Шаг 4. Отредактируйте оба файла

Откройте index.php и htaccess и измените url сайта с сайт на тот домен, на который хотите сделать переадресацию

Готово. Переадресация с одного домена на другой должна заработать. Если нет, то почистите кэш браузера. Всем добра. ​

P.S. Скачав архив и распаковав его, вы можите не увидеть (скорее всего файл htaccess ). Это и правильно. Не нужно Вам видеть системные файлы. Но любой файл менеджер, типа Total Commander, FileZilla или Coda2 распознает этот тип файлов. С помощью этих программ вы сможете и залить файлы на сервер и открыть их для редактирования