Как создать зеркало сайта на WordPress (плагин)

Как создать зеркало сайта на WordPress (плагин)

Все-таки я окончательно решил уходить от доменов RU.

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

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

  1. Сделать абсолютную копию сайта (его зеркало) таким образом, чтобы сайт работал одновременно с двух адресов.
  2. На старом домене в robots.txt добавить директиву host, указывающую на новый адрес сайта.
  3. Ждать, ждать, ждать — когда придет робот-зеркальщик, когда его кореш индексирующий бот познакомится с зеркалом сайта, и когда проиндексированное зеркало, наконец, попадет в серп Яндекса.
  4. Вот теперь можно будет ставить 301-й редирект со старого адреса на новый.

Вы наверняка знаете, что WordPress жестко привязывает к сайту его адрес, т.е. если попытаться тупо скопировать файлы движка, находящиеся на фтп, в новый сайт и оставить то же самое подключение к БД, то при заходе по новому адресу сайта произойдет автоматический редирект на старый адрес, поскольку он и указан в настройках.

Чтобы обойти этот редирект (кстати, в более ранних версиях WordPress его не было), я создал малюсенький плагин в пару десятков строк кода, который и позволяет выполнить первый из четырех вышеуказанных пунктов.

Но, прежде чем дать ссылку на плагин, я хочу рассказать, как с ним работать.

Установка и настройка плагина

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

    Вам самим придется разобраться, каким образом это сделать на вашем хостинге, я же только приведу пример того, как это выглядит в панели управления ISPmanager:

    Настройка зеркала домена в ISPmanager

  2. Распаковать плагин из архива и в файле AA-DomainMirror.php отредактировать следующие 2 строки:
    $main = "domain.ru"; // главный домен
    $mirror = "domain.com"; // зеркало
    
  3. Закинуть папку AA-DomainMirror на сайт и активировать плагин через админку. Обратите внимание, что название папки лучше не менять, AA- в названии используется для того, чтобы плагин инициировался первым.
  4. После этого следует походить по новому адресу сайта и удостовериться, что все ссылки содержат правильный домен. В зависимости от используемых вами плагинов может случиться так, что некоторые ссылки будут содержать старый домен. Поэтому вам самим придется разбираться с такими плагинами.

Скачать плагин

Проверял работу плагина на WordPress 2.7, думаю, что и на 2.8 и на некоторых ранних версиях тоже будет работать.

Надеюсь, кому-то этот плагин пригодится =)

Комментарии (56)
  1. 1

    А как блог на блогспоткоме сделать зеркалом нового блога на домене ру?

  2. 3

    Спасибо за замечательный плагин. Сначала правда перепутал зеркало с основным))

  3. 4
    simiris

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

  4. 6
    lex111

    Меня интересует такой вопрос, как сделать зеркало сайта без редиректа? Ну тоесть чтобы сайт был доступен по обоим адресам, вот например этот сайт(не реклама) http://podkat.vokar.net/ (Линк сети MaxNet) http://podkat.ru/ и http://podkat.flyfm.net/ он доступен до 3 адресам без редиректа как так сделать?

  5. 8
    Дима

    Сделал как написано все заработало но потом надо стало поменять домены местами так как один из них кириллический.
    Я перенес WP на другой домен третьим способом указанным тут: http://dimox.name/moving-the-site-on-new-domain/ и в итоге зеркало открывается но все ссылки постов ведут на основной домен, а не зеркало.
    Как вылечить?

  6. 9
    pikan

    Как сделать так чтобы с главного домена перенаправлять на новый с www.test.com/add автоматом на www.test.ru/add ?

  7. 11

    Димокс, а после всех переносов уже прошло около полугода — я могу удалить плагин? я просто плохо понимаю систему..)) у меня не заглючит вордпресс после удаления?

  8. 13

    Спасибо, хорошее решение. Ведь 301-редирект это неправильное решение для переноса траста и возроста на новый домен. Для этого должно быть два одинаковых зеркала.

  9. 14

    Правда есть один небольшой вопрос, скажем делаем мы зеркало сайта, после того как два сайта стали зеркалами, до 301-го редиректа, это надо все таки на новый домен залить весь сайт и в базе указать урлы нового сайта?

  10. 15
    Джус

    спасибо огромное за плагин! очень помогло при необходимости создать один сайт с несколькими доменами… надеюсь, это не повлечет проблем с поисковиками…

  11. 16

    Есть основной сайт, тот что в подписи, и есть свободный домен d-nk.in.ua
    Как сделать правильно и корректно d-nk.in.ua зеркалом сайта d-nk.com.ua
    Что бы и информация с основного перетекала на зеркало и поисковики не путались где основной, а где зеркало.
    Спасибо

  12. 17
    Леонид

    Здравствуйте!
    Сделал всё, как сказано. Пока ничего не работает ((