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

    сайт открывается по 2 адресам: www.mysite.ua и mysite.ua (для поисковых машин это существенная разница и они воспринимают 2 адреса, как 2 разных сайта), поэтому необходимо сделать чтобы при обращении к страницам сайта с www, шла переадресация на такие же страницы сайт без www, например с http://my site.ua /news/ на http://www.mysite.ua/news/ ( или наоборот ).

    у вас есть несколько доменов, основной mysite.ua и альтернативный my-site.ua и/или кириллический мойсайт.укр . Необходимо, чтобы при наборе в браузере адреса my-site.ua и/или мойсайт.укр посетитель автоматически перенаправился на сайт mysite.ua.

1. Перенаправление домена в файле .htaccess .

1.1. С www-домена на основной домен

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

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

1.2. С основного домена на www-домен

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

1.3. С одного домена на другой

Задача может быть решена так же как и первая, для настройки перенаправления посетителей с одного доменного domain1.ua имени на другое domain2.ua вы можете использовать соответствующие директивы в файле .htaccess .

Сделать на старом домене domain1.ua файл.htaccess, с содержанием:

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

1.4. Перенаправление с нескольких доменов

Необходимо сделать переадрессацию с доменов domain1.ua и www.domain1.ua на новый домен domain2.ua , для это впишите:

RewriteCond %{HTTP_HOST} ^ domaim1 \. ua RewriteRule ^(.*)$ http:// domain2.ua /$1 RewriteCond %{HTTP_HOST} ^www. domain1 \. ua RewriteRule ^(.*)$ http:// domain2.ua /$1

Аналогично можно делать перенапрвление с domain.ua на domain.com и т. п.

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

2. Перенаправление домена в панели управления хостингом

На примере панели управления «cPanel»

Вы можете выбрать варианты перенаправления – 301 или 302.

301 редирект - это постоянное перенаправление. Т.е. при установке 301 редиректа всем, в том числе поисковым машинам, будет сообщено, что запрашиваемая страница навсегда «переехала» на новый адрес. Такое перенаправление необходимо, например, при переезде с одного доменного имени на другое. Таким образом, вы не потеряете поисковый трафик, а поисковые машины будут оповещены о смене адреса.

302 редирект - это временное перенаправление. Таким образом, пользователи, вызывая страницу, на которую установлен 302 редирект, будут получать ответ с указанного в редиректе адреса. Однако в поисковых машинах прежний адрес останется и будет удерживать свои позиции.

Также, можно выбрать опции перенаправления, связанные с синонимом сайта с www. Обратите внимание, что переадресацию с домена http://www.site.ua/ на http://site.ua/ средствами cPanel сделать не удастся. Подобный редирект создается с помощью файла .htaccess .

Управление перенаправлением выглядит довольно стандартно. Вы можете удалить созданный параметр:

3. Перенапрвленеи кирилличнский доменов

Переадрессация кириилических доменов ничем не отличается от обычного (на латинице). Просто необходимо использовать конвертер punycode .

Punycode – это метод преобразования символов, относящихся к стандарту Unicode , в последовательность символов, содержащих только символы в кодировке ASCII , а именно 26 букв латинского алфавита (a-z), цифры (0-9) и символ дефиса (всего 37 символов).

Домены, содержащие символы национальных алфавитов называют IDN-доменами. Некоторые сервисы не поддерживают IDN представление доменов. Поэтому не работает домен УКР или другие IDN-домены. В таком случае необходимо использовать имя домена после Punycode-конвертации.

Например, домен http://мойсайт.укр/ после кодирования (можно воспользоваться сервисом http://wwhois.ru/punycode.php) становится , его-то мы и вписываем в уже знакомый код

RewriteEngine On RewriteCond %{HTTP_HOST} http://xn--80arbjktj.xn--j1amh/ RewriteRule (.*) http:// domain2. ua /$1

или в соответствующую строку в панели управления.

Последнее обновление Ноябрь 26th, 2018

Время чтения: 2 минуты

301 редирект (301 Moved Permanently) — это перенаправление пользователя с одной страницы (url) на другую.

Зачем нужен 301 редирект

  • передача ссылочного веса
  • правильное избавление от старых страниц
  • сохранение позиций (полное или частичное) при смене урлов
  • избавление от дублей внутри сайта (если такое есть)
  • переезд сайта на новый домен или протокол HTTPS
  • склейка доменов

Как сделать 301 редирект с помощью файла.htaccess?

Примеры будем рассматривать на сайте вида site.ru

Склейка домена с www с вариантом без

Для поисковых систем site.ru и www.site.ru — это два разных домена. Если у вас не настроена переадресация с одной версии домена на другую, в выдаче поисковых систем могут появиться дубли страниц. При базовой технической оптимизации в файле прописывается обязательное правило с указанием главного зеркала сайта, но также для подстраховки необходимо настроить и редиректы. Это не будет лишним точно.

Настраиваем редирект с http://www.site.ru на site.ru. Здесь главное зеркало сайта это http://site.ru

RewriteCond %{HTTP_HOST} ^www\.(.*)$

RewriteRule ^(.*)$ http://%1/$1

301 редирект при переезде на HTTPS

Поисковые системы в последние годы обозначили тренд на безопасность и рекомендуют всем вебмастерам переводить сайты на защищенный протокол https

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1

Если нужно сделать наоборот:

RewriteCond %{HTTPS} «on»

RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}

Стандартная переадресация с одной статической страницы на другую

Часто бывает, что на сайте какие-либо страницы устаревают, становятся неактуальными или просто вебмастеру необходимо привести урл страницы к ЧПУ виду.

Например, нужно настроить 301 редирект со страницы http://www.site.ru/page1/ на страницу http://www.site.ru/prodvizhenie-saytov/

RewriteCond %{REQUEST_URI} ^/page1/ $

RewriteRule ^.*$http://www.site.ru/prodvizhenie-saytov/ ?

301-редирект с домена на домен

Иногда бывают ситуации, когда необходимо настроить редиректы с одного домена на другой. Например, у вас был молодой, не трастовый домен, а со временем появился откуда-то прокачанный, трастовый (купили может). Или владельцу сайта надоело старое название домена и резко захотелось его поменять на другое.

Для полной передачи веса с одного домена на другой одних редиректов будет не достаточно, но об этом не в этой статье.

RewriteCond %{HTTP_HOST} ^old-site\.ru$
RewriteRule ^(.*)$ http://www.newsite.ru/$1

Если ваш домен находится в зоне РФ

RewriteCond %{HTTP_HOST} ^xn-…\.xn--p1ai$
RewriteRule ^(.*)$ http://www.site.ru/$1

Переадресация на папки со слешем в конце /

Иногда на сайтах встречаются дубли страниц вида http://www.site.ru/prodvizhenie-saytov/ и http://www.site.ru/prodvizhenie-saytov

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.ru/$1/

Перенаправление с индексной страницы php (index.php) на саму папку (корень)

Иногда у сайтов может появляться «технический мусор» из-за особенностей админки или каких-либо других причин. Например, главная страница сайта бывает часто доступна по адресу вида http://www.site.ru/index.php и может присутствовать в индексе поисковых систем, мешая ранжированию главной страницы в поисковой выдаче.

RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.ru/

Для всех индексных страниц на сайте:

RewriteRule ^(.*)index\.php$ http://www.site.ru/$1

301 редирект с поддомена на основной домен

RewriteCond %{HTTP_HOST} ^test.site.ru$

RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI}

Эта статья устарела.

Эта статья написана для услуги Виртуальный хостинг, которая считается устаревшей с 1 июня 2019 года.

Актуальную услугу хостинга можно заказать на нашем сайте

Переадресация с одного домена на другой (редиректоры)

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

  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 на переадресуемом домене будет вести только на какую-то одну конкретную страницу домена назначения. Вряд ли это то, что вам нужно.

Многие владельцы коммерческих сайтов рано или поздно задумывается про переезд на другой домен. С чем это связано (неправильный нейминг, неудачный старт, просто прихоть) — тема для отдельной статьи. А сейчас я хочу рассказать о технических деталях склейки и об ошибках, которые могут погубить всю проведенную работу и на долгое время лишить сайт органического трафика.

Как сделать редирект на другой сайт

На первый взгляд, склейка доменов — дело несложное, стоит прописать всего несколько строчек в htaccess и ожидать результатов. Но результат может быть и плачевным, если вы что-то сделаете не так и по завершению склейки не проверите все. Итак, давайте я пошагово распишу, как сделать редирект на другой сайт, допустим, что в данном случае это ваш старый и новый ресурсы, которые вы хотите склеить.

  1. Настройка постраничного редиректа со старого на новый домен. Редирект прописывается в файле htaccess (корневая директория сайта на сервере) старого сайта. Вот сама директива:

    RewriteCond %{HTTP_HOST} ^www\.oldsite\.com$ RewriteRule ^(.*)$ http://newsite.com/$1 RewriteCond %{HTTP_HOST} ^oldsite\.com$ RewriteRule ^(.*)$ http://newsite.com/$1

    RewriteCond % { HTTP_HOST } ^ www \ . oldsite \ . com $ [ NC ]

    RewriteCond % { HTTP_HOST } ^ oldsite \ . com $ [ NC ]

    RewriteRule ^ (. * ) $ http : //newsite.com/$1

  2. После настройки основного редиректа, рекомендуется вручную проверить корректность перенаправления страниц. Сделать это несложно при помощи программы Netpeak Spider (скачать программу). После установки программы, запустите ее, и введите адрес старого сайта в строку поиска. Далее, выберите тип сканирования — по Google, и запустите сканирование. Если редирект со старого на новый домен осуществлен корректно, все найденные страницы будут отдавать код 301 (Moved Permanently).
  3. Далее, необходимо проверить корректность работы всех страниц с новым доменом . Для этого, используя ту же программу (Netpeak Spider), проверьте коды ответа страниц. Учтите, что теперь проверку делайте по сайту, а не по Google, как в предыдущем пункте.
  4. В течении 1-2 месяца после склейки, страницы старого сайта полностью выпадут из индекса и их место займут новые страницы. Поэтому, примерно через 2 месяца следует просмотреть выдачу поисковиков по новому сайту, и сопоставить данные с показателями до перенаправления. Если данные количества страниц и позиции по запросам примерно одинаковые (запросы могут просесть на некоторое время) — все сделано правильно. Также, рекомендую отслеживать количество 404-х ошибок в панели вебмастера.
  5. Фактически, это все, что требуется сделать для склейки доменов. Однако, описанный выше способ не подойдет, если меняется не только домен, но и внутренняя структура сайта . Тогда придется придумывать костыли. Возможно, часть страниц получится перенаправить при помощи редиректов сложного перенаправления, остальные страницы придется перенаправлять вручную, при помощи директивы Redirect 301. Например, если есть старая страница siteold.com/page-old и ее надо перенаправить на страницу нового домена sitenew.com/page-new, то редирект будет выглядеть так:

    Redirect 301 /page-old http://sitenew.com/page-new

    Redirect 301 / page - old http : //sitenew.com/page-new

    Приписывать подобные редиректы необходимо в файле.htaccess старого сайта.

    Особенности склейки доменов для Google и Яндекс

    Как я писал выше, в целом процесс склейки более чем простой. Тем не менее, существуют некоторые нюансы. Например, для более быстрой склейки сайта в Google необходимо провести некоторые манипуляции в панели вебмастера (Google Webmaster Tools). Зайдите на страницу старого сайта в GWT, в правом верхнем углу кликните по шестеренке, выберите пункт «Изменение адреса», и следуя инструкции, составьте запрос на изменение адреса. Я встречал информацию, что такие действия, при условии правильного перенаправления страниц, сайт может склеиться в течение недели.

    Для Яндекса специальных «фич» нет. Но хотелось бы упомянуть об одном моменте. В официальной инструкции поисковика по склейке сайтов упоминается два варианта, как это можно сделать. Первый способ — редирект на другой сайт, второй — прописывание нового зеркала в директиве Host (robots.txt). Второй способ мало того, что не универсален, так еще и займет гораздо больше времени. Некоторые специалисты рекомендуют сочетать оба варианта и исключать роботс на старом сайте из редиректов. Скажу сразу — делать это ни к чему, вполне достаточно 301-го редиректа , но пример директивы htaccess все же приведу.