Правильное зеркалирование сайта

// Октябрь 12th, 2010 // Веб-разработка

Иногда бывает важно создать зеркало уже имеющегоса сайта. Например у вас есть сайт 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, в котором будет прописано основное зеркало сайта:

User-Agent: *
Disallow:
Host: site2.ru

Этот файл надо разместить на всех зеркалах сайта. А вот что говорит нам Яндекс про зеркала:

Если ваш сайт имеет зеркала, специальный робот зеркальщик определит их и сформирует группу зеркал вашего сайта. В поиске будет участвовать только главное зеркало. Вы можете указать его у всех зеркал при помощи robots.txt, используя директиву ‘Host’, определив в качестве ее параметра имя главного зеркала. Директива ‘Host’ не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом. Пример:

#Если www.glavnoye-zerkalo.ru главное зеркало сайта, то
#robots.txt для всех сайтов из группы зеркал выглядит так
User-Agent: *
Disallow: /forum
Disallow: /cgi-bin
Host: www.glavnoye-zerkalo.ru

Важно: в целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву ‘Host’ необходимо добавлять в группе, начинающейся с записи ‘User-Agent’, непосредственно после директив ‘Disallow'(‘Allow’). Аргументом директивы ‘Host’ является доменное имя с номером порта (80 по умолчанию), отделенным двоеточием.

#Пример корректно составленного robots.txt, при обработке
#которого директива Host учитывается
User-Agent: *
Disallow:
Host: www.myhost.ru

#Примеры некорректно составленных robots.txt, при обработке
#которых директива Host может не учитываться
#1.
User-Agent: *
Host: www.myhost.ru

#2.
Host: www.myhost.ru

#3.
User-Agent: *
Host: www.myhost.ru
Disallow: 

#4.
Host: www.myhost.ru
User-Agent: *
Disallow:

Важно: параметр директивы Host обязан состоять из одного корректного имени хоста (т.е. соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Некорректно составленные строчки ‘Host:’ игнорируются.

# Примеры игнорируемых директив Host
Host: www.myhost-.ru
Host: www.-myhost.ru
Host: www.myhost.ru:100000
Host: www.my_host.ru
Host: .my-host.ru:8000
Host: my-host.ru.
Host: my..host.ru
Host: www.myhost.ru/
Host: www.myhost.ru:8080/
Host: http://www.myhost.ru
Host: 213.180.194.129
Host: www.firsthost.ru,www.secondhost.ru
Host: www.firsthost.ru www.secondhost.ru

Примеры использования директивы Host:

# domen.myhost.ru является главным зеркалом
# www.domen.myhost.ru, тогда корректное использование
# директивы Host такое:
User-Agent: *
Disallow:
Host: domen.myhost.ru

# domen.myhost.ru является главным зеркалом
# www.domen.myhost.ru, тогда некорректное использование
# директивы Host такое:
User-Agent: *
Disallow:
Host: myhost.ru
Share

Спасибо!


Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:


Комментировать