Склейка доменов сайта через 301 редирект в файле .htaccess

«Когда у тебя одни часы — ты точно знаешь который час, когда у тебя много часов — ты ни в чем не уверен»

Даже если для отображения моего сайта используется всего одно доменное имя, на самом деле их уже два! 

Действительно, mysite.ru и www.mysite.ru — это вполне возможно совершенно разные сайты. И поисковые системы воспринимают их как разные, если не убедить их в обратном.

А уж если доменов на один сайт несколько, как часто бывает, просто необходимо все правильно настроить. 

Для начала, нужно зайти через файловый менеджер CMS сайта или FTP-клиент на сервер и в корневой сайта найти пару файлов:

.htaccess 
robots.txt 

В последнем достаточно добавить после команды Disallow: строчку, которая определяет, какой домен будет основным: 

User-agent: * 
Disallow: /admin/ 
Host: mysite.ru 

Теперь, когда mysite.ru назначен основным, нужно для всех остальных доменов, настроить переадресацию (редирект) в файле .htaccess: 

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.mysite\.ru$ [NC]
RewriteCond %{HTTP_HOST} ^www\.mysite1\.ru$ [NC]
RewriteCond %{HTTP_HOST} ^mysite1\.ru$ [NC]
RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [NC]
RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteCond %{HTTP_HOST} ^www\.XN—80AA0ABL6AJ\.XN—P1AI$ [NC]
RewriteCond %{HTTP_HOST} ^XN—80AA0ABL6AJ\.XN—P1AI$
RewriteRule ^(.*)$ http: //mysite. ru/$1 [R=301,L] 

Не забудем, что в предпоследней строке заканчивается перечисление всех переадресуемых доменов, поэтому условие ИЛИ — [NC] ставить не нужно. 

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

Для этого достаточно набрать в строке URL любое не основное доменное имя. 

Проверить склейку доменов сайта легко. Если все настроено верно, и директива rewrite работает, с любого не основного домена мы должны перейти на основной домен сайта: mysite.ru.