Правильное зеркалирование сайта
Иногда бывает важно создать зеркало уже имеющегоса сайта. Например у вас есть сайт site.com и вы хотели бы сделать зеркало site2.com для него. Важно знать, что зеркала – полностью идентичные сайты. В качестве примера зеркал могут выступать сайты www.site.com и site.com
Для того, чтобы сделать зеркало нужно прежде всего перенести весь контент на зеркало со старого сайта. Затем на старом сайте сделать ряд манипуляций.
Вместо контента на старом сайте надо разместить перманентный редирект, который на языке PHP может выглядеть так:
index.php
<?php
Header(“Location: http://site2.ru/”.$_SERVER[‘REQUEST_URI”]);
Он при получении запроса, будет перенаправлять пользователя на новый сайт, на ту же страницу. Это является вторым условием зеркальности сайтов. Для перенаправления всех запросов на index.php можно использовать этот .htaccess файл
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Дальше надо грамотно составить robots.txt, в котором будет прописано основное зеркало сайта:
123 User-Agent: *Disallow:Host: site2.ru
Этот файл надо разместить на всех зеркалах сайта. А вот что говорит нам Яндекс про зеркала:
Если ваш сайт имеет зеркала, специальный робот зеркальщик определит их и сформирует группу зеркал вашего сайта. В поиске будет участвовать только главное зеркало. Вы можете указать его у всех зеркал при помощи robots.txt, используя директиву ‘Host’, определив в качестве ее параметра имя главного зеркала. Директива ‘Host’ не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом. Пример:
1 2 3 4 5 6 |
#Если <a href="http://www.glavnoye-zerkalo.ru/" target="_blank" rel="noopener">www.glavnoye-zerkalo.ru</a> главное зеркало сайта, то #robots.txt для всех сайтов из группы зеркал выглядит так User-Agent: * Disallow: /forum Disallow: /cgi-bin Host: <a href="http://www.glavnoye-zerkalo.ru/" target="_blank" rel="noopener">www.glavnoye-zerkalo.ru</a> |
Важно: в целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву ‘Host’ необходимо добавлять в группе, начинающейся с записи ‘User-Agent’, непосредственно после директив ‘Disallow'(‘Allow’). Аргументом директивы ‘Host’ является доменное имя с номером порта (80 по умолчанию), отделенным двоеточием.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#Пример корректно составленного robots.txt, при обработке #которого директива Host учитывается User-Agent: * Disallow: Host: <a href="http://www.myhost.ru/" target="_blank" rel="noopener">www.myhost.ru</a> #Примеры некорректно составленных robots.txt, при обработке #которых директива Host может не учитываться #1. User-Agent: * Host: <a href="http://www.myhost.ru/" target="_blank" rel="noopener">www.myhost.ru</a> #2. Host: <a href="http://www.myhost.ru/" target="_blank" rel="noopener">www.myhost.ru</a> #3. User-Agent: * Host: <a href="http://www.myhost.ru/" target="_blank" rel="noopener">www.myhost.ru</a> Disallow: #4. Host: <a href="http://www.myhost.ru/" target="_blank" rel="noopener">www.myhost.ru</a> User-Agent: * Disallow: |
Важно: параметр директивы Host обязан состоять из одного корректного имени хоста (т.е. соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Некорректно составленные строчки ‘Host:’ игнорируются.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Примеры игнорируемых директив Host Host: www.myhost-.ru Host: www.-<a href="http://myhost.ru/" target="_blank" rel="noopener">myhost.ru</a> Host: <a href="http://www.myhost.ru:100000/" target="_blank" rel="noopener">www.myhost.ru:100000</a> Host: <a href="http://www.my_host.ru/" target="_blank" rel="noopener">www.my_host.ru</a> Host: .<a href="http://my-host.ru:/" target="_blank" rel="noopener">my-host.ru:8000</a> Host: <a href="http://my-host.ru/" target="_blank" rel="noopener">my-host.ru</a>. Host: my..<a href="http://host.ru/" target="_blank" rel="noopener">host.ru</a> Host: <a href="http://www.myhost.ru/" target="_blank" rel="noopener">www.myhost.ru/</a> Host: <a href="http://www.myhost.ru:8080/" target="_blank" rel="noopener">www.myhost.ru:8080/</a> Host: <a href="http://www.myhost.ru/" target="_blank" rel="noopener">http://www.myhost.ru</a> Host: 213.180.194.129 Host: <a href="http://www.firsthost.ru/" target="_blank" rel="noopener">www.firsthost.ru</a>,<a href="http://www.secondhost.ru/" target="_blank" rel="noopener">www.secondhost.ru</a> Host: <a href="http://www.firsthost.ru/" target="_blank" rel="noopener">www.firsthost.ru</a> <a href="http://www.secondhost.ru/" target="_blank" rel="noopener">www.secondhost.ru</a> |
Примеры использования директивы Host:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# <a href="http://domen.myhost.ru/" target="_blank" rel="noopener">domen.myhost.ru</a> является главным зеркалом # <a href="http://www.domen.myhost.ru/" target="_blank" rel="noopener">www.domen.myhost.ru</a>, тогда корректное использование # директивы Host такое: User-Agent: * Disallow: Host: <a href="http://domen.myhost.ru/" target="_blank" rel="noopener">domen.myhost.ru</a> # <a href="http://domen.myhost.ru/" target="_blank" rel="noopener">domen.myhost.ru</a> является главным зеркалом # <a href="http://www.domen.myhost.ru/" target="_blank" rel="noopener">www.domen.myhost.ru</a>, тогда некорректное использование # директивы Host такое: User-Agent: * Disallow: Host: <a href="http://myhost.ru/" target="_blank" rel="noopener">myhost.ru</a> |