Правильный перенос WordPress-сайта на другой домен с сохранением настроек темы

Плюсануть
Поделиться
Класснуть

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

После завершения работ на сайте он переносится на основной домен. По факту файлы перекидываются из одной папки в другую (либо меняется путь в Apache, либо переименовывается папка) и делается поиск и замена старого домена на новый в экспортированной базе MySQL, с дальнейшим импортом обратно.

Так я делал раньше. И только недавно узнал, что такой способ далеко не всегда срабатывает, особенно если сайт создаётся на основе платного и монстроузного шаблона для WordPress.

На днях решил очередную проблему, когда после махинаций с поиском и заменой сайта в базе через Sublime Text, сайт перекосило, поехала вёрстка и появилось несколько ошибок. Это нормальная практика при использовании тем Yeahthemes, ThemeFusion, Elegant Themes, YOOtheme и других.

Выяснилось, что я этим дерзким и дереволазным способом ломал сериализованные строки. Так бывает, когда в одну ячейку базы записывается целый массив значений, в итоге количество символов различается и ничего не работает.

Позаботится об этом вам поможет скрипт Search Replace DB.

Скачать Search Replace DB

Смена домена сайта на WordPress

Скачайте архив со скриптом, распаковать и получившуюся папку загрузить в корневую директорию. Затем переходим в получившуюся директорию на сайте, откроется такая страница:

Search Replace DB

В поле replace введите старый домен, в поле with – новый домен. В раздел database нужно ввести данные для доступа к MySQL (скрипт автоматически подхватывает их из WordPress).

После заполнения необходимых полей жмём live run и наблюдаем за заменой. Не закрывайте страницу, пока скрипт не завершит свою работу. Чревато ошибками.

Обязательно удалите папку со скриптом после успешной замены! Не нужно объяснять что произойдёт, если злоумышленник откроет данный скрипт на сайте. Сделать это можно кнопочкой delete me. Но если не хочется удалять скрипт, то стоит его закрыть от посторонних. Хотя бы посредством .htaccess + .htpasswd.

Скриптом Search Replace DB можно не только менять домен, но и другие данные, причём делать это аккуратно и сохраняя правильную структуру данных.

Проблемы с кириллическими доменами

Если домен, на который вы переносите сайт – кириллический, заранее подумайте о том, чтобы замена в базе шла не в привычном виде, как домен.рф, а в формате Punycode, вот так: xn--d1acufc.xn--p1ai.

Дело в том, что система доменных имён (DNS) работает таким образом, что адреса сайтов могут содержать буквы английского алфавита, цифры и тире (-). Поэтому для корректной работы сайта необходимо переводить кириллические домены в Punycode.

Конвертировать домен из кириллицы в Punycode можно автоматически в этом конвертере.

Punycode-конвертер

Заключение

Итак, теперь вы знаете как правильно заменить домен в базе MySQL, чтобы избежать ошибок. Плюс рассмотрели как быть, если используется кириллический домен.

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

Если остались вопросы – пишите в комментарии, постараюсь помочь. И да, не забывайте кликать по социальным кнопочкам ниже. Не зря же они там.

Можете, кстати, купить htc на сайте stylus.com.ua. Если вы, вдруг, передумали купить себе Айфон.

Последнее изменение записи: 20.02.2017 | Рубрика: Работа | Метки: , , ,
Плюсануть
Поделиться
Класснуть