Перенос WordPress на новый домен (переезд)

При тестировании хостера мне понадобилось перекинуть небольшой блог на другой домен. Перекинув файлы и, набрав адрес в браузере, иду искать сюрпризы. Да, в WP они встречаются. Первое что "бросается в глаза" -- грузится только главная страница и ссылки не работают. Поняв свою ошибку, мне пришлось залезть в БД, чтобы не перемещать файлы с места на место. Тут мне сразу вспомнилась страничка в админке wp: Параметры > Общее. Так вот, если вы переносите файлы на ДРУГОЙ домен, сначала ДОМЕН нужно прописать на этой станице, задать новые Адрес WordPress и Адрес блога. И после этого не пытайтесь открыть блог сразу так как он будет перекидывать вас по новому адресу.

Для тех же, кто наступил на те же грабли, описываю решение этой проблемы. Дело в том, что у WordPress есть жесткая привязка к домену. Т.о. все что нам нужно поправить в базе данных это задать новые URI, для siteurl, home, ну и заодно сразу и upload_path (нужно знать путь к корневой директории wp).

Итак идем в панель управления хостингом, управление базами данных, переходим в phpMyAdmin. Находим таблицу options (prefix_options), ищем там строку со следующим:

option_name => siteurl
option_value => http://ваш_старый_домен.com

Жмем редактировать и меняем на новый домен.

Ну хорошо я упрощаю задачу для тех кто умеет пользоваться phpMyAdmin. Можно не искать таблицу и строку, а просто отправить вот такой SQL запрос:

UPDATE `имя_БД`.`префикс_options` SET `option_value` =
`http://ваш.новый_домен.куку` WHERE `префикс_options`.`option_id` =1 AND
`префикс_options`.`blog_id` =0 AND `префикс_options`.`option_name` =
`siteurl` LIMIT 1 ;

Примечание: префикс_options -- это таблица options с вашим префиксом (замените слово "префикс_" на ваш префикс), если вы не используете префикс, то пишите просто options.

В той же таблице ищем и правим значение option_value:

option_name => home
option_value => http://ваш_старый_домен.com

SQL ЗАПРОС:

UPDATE `имя_БД`.`префикс_options` SET `option_value` =
`http://новый_домен.куку` WHERE `префикс_options`.`option_id` =39 AND
`префикс_options`.`blog_id` =0 AND `префикс_options`.`option_name` =
`home` LIMIT 1 ;

Так же в БД можно сразу обновить upload_path на новый (но можно сделать это уже в настройках блога, особенно если вы не знаете путь к вашей папке на хостинге, хотя обычно он указан в панели управления). В той же таблице prefix_options ищем:

option_name => upload_path
option_value => старый/путь (это не URL, а путь к папке, типа /home/bla-bla/htdocs/wp-content/uploads)

И меняем на новый.

SQL ЗАПРОС:

UPDATE `имя_БД`.`префикс_options` SET `option_value` =
`новый/путь/до_папки/uploads` WHERE `префикс_options`.`option_id` =60
AND `префикс_options`.`blog_id` =0 AND `префикс_options`.`option_name` =
`upload_path` LIMIT 1 ;

Проблема устранена!

Однако, выполнять эти запросы или редактировать mysql при переносе wordpress вовсе не обязательно, если сделать перенос правильно. Как правильно перенести WordPress, смотри инструкцию ниже.

Инструкция по переносу WordPress

  1. Бэкап Базы Данных и всех файлов и папок.
  2. Если вы переносите WP на новый домен (или в другую папку), то: Перейдите в панель управления > Параметры > Общее. И введите новые Адрес WordPress и Адрес блога. (Не пытайтесь открыть/посмотреть ваш блог сейчас!)
    Общие настройки
  3. Переместите файлы.
  4. При переезде на новый домен: Как правило при переезде бьются пути к картинкам, т.к. эти пути залегают в таблицах самих записей, так что перед тем как импортировать БД, откройте файл копии базы данных в текстовом редакторе и замените старые пути на будущие.
  5. Если это перенос на новый домен с новым хостингом, тогда создаем новую БД и редактируем файл wp-config.php, т.е. пишем новые параметры для БД.
  6. Импортируйте БД, через phpMyAdmin.
  7. Теперь вы можете посмотреть сайт в браузере.

Если вы не выполнили пункт 2, а оказывается надо было, но вы уже переместили все файлы -- правьте БД, как указано выше в этой записи (siteurl, home).

Готово!

P.S.: Чтобы забрать свой Google PR с собой на новый домен, вам потребуется сделать 301 редирект, со старого домена на новый. Для этого в корне старого домена поместите файл .htaccess (вместо старого) с примерно следующим содержанием:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://ваш_новый_домен.ру/$1 [R=301,L]

Как быть с ТИц -- пока вопрос для многих.

14 Комментариев [Нет новых]

Аватар пользователя Дмитрий

Залез в phpMyAdmin, а там уже всё прописалось после того как я поправил в "options" админки, а страницы так и не работают, 404...

Аватар пользователя Дмитрий

@Дмитрий: И тут же решение проблемы: у меня стояли "произвольные" ссылки в опциях, нужно было поменять, и всё заработало.

Аватар пользователя EllECTRONC

Кстати фиды feedburner'a тоже надо редиректить Wink

Аватар пользователя Натуся

Ой. Спасиб тебе, добрый человек.
Не знаю, сколько бы я еще ковырялась с дампом без этого поста Wink

Аватар пользователя bersy

если phpMyAdmin на хостинге нету (ну бывает такое), для бэкапа БД можно использовать специальный скрипт, например, широко изветсный Sypex Dumper Lite, затем просто открыть созданный скриптом дамп базы в текстовом редакторе и произвести пару операций замены:
1) заменить все пути к папке upload (например, все строчки http://example.com/up заменить на http://example.net/up)
2) заменить все остальные старые пути на новые (все строчки http://example.com заменить на http://example.net)
В примере подразумевается что WP был установлен в корне http://example.com и папка upload находилась здесь http://example.com/up. В общем делаем замены в файле дампа в зависимости от своих настроек WP, обычно достаточно выполнить всего 1-2 замены.
Затем с помощью все того же Sypex Dumper Lite на новом домене восстанавливаем БД из полученного дампа и все.
Букаф может и многовато, но обычно эти действия занимают пару минут Улыбка

Разумеется перед операцией с БД, на новый домен нужно залить все установленные ранее плагины, тему, папку upload; в общем сделать такую же структуру папок как на старом домене.

Также по-моему существуют различные WP-плагины для бэкапа БД, больше не скажу, сам их не использовал.

Аватар пользователя EllECTRONC

@bersy: phpMyAdmin'а нет? Как-то не думала что такое бывает...

Ну, в общем вы написали почти тоже самое. Вот только у меня вопрос: а почему с "http://"? оно же неизменяемо (почти всегда(!))

Sypex Dumper Lite -- хорошая штука, но возможны траблы с кодировками, так что с ним нужно внимательно.

На счет переноса дампа БД на новый домен используя плагин это я очень сомневаюсь... ибо придется сначала ставить чистый WP на новый домен и этот плагин, а потом уже...

Аватар пользователя Анастасия

А не подскажете случайно, в чем может быть проблема: yandex вдруг перестал индексировать нормальное имя сайта. Индексирует только техническое. Сайт на WordPress сначала был настроен под это техническое имя. В первые дни существования. Затем в панели управления был поставлен нормальный url. При этом с Google нет проблем. Может, где-то все же идет привязка к техническому имени?

Аватар пользователя EllECTRONC

@Анастасия: Вы же сами пишите, что проблема только одним поисковиком, поэтому это не проблема WP.

В чем может быть проблема:

  1. сайт заблокирован яндексом из-за частых жалоб и/или спама.
  2. яша глючит.

В чем может быть решение:

  • посмотрите какой URL указан в вашем robots.txt (в корне сайта), если вообще не указано или нет такого файла создайте его и укажите специально для бота Яши параметр Host: ваш-нормальный.урл. Яндекс.Вебмастер вам в помощь;
  • если он раньше нормально индексировался, а сейчас просто перестал, то пишите в поддержку яши и спрашивайте у них в чем дело;
  • заново подайте в индексацию яндексом ваш новый URL.
Аватар пользователя Анастасия

@EllECTRONC: Спасибо, вы меня успокоили, а то думала переустановить движок Улыбка. Знаю, что сайт не заблокирован. И robots.txt сделала для Яндекса сегодня. Написала в Яндекс. Надеюсь, все решится.

Аватар пользователя Al11

Спасибо хорошая информация, буквально - пара нажатий мыши о все работает

Аватар пользователя Руслан

Подскажите как быть если я переношу блог со старого домена на новый, а на старом хочу сделать новый блог, файл .htaccess будет же перенаправлять на новый домен всю информацию.

Аватар пользователя EllECTRONC

Руслан, если в .htaccess настроено перенаправление, то да, если не настроено, то нет.

Аватар пользователя Everouge

Хорошо написано.Спасибо за тонкости. Я как то без подобных заморочек переносил, но теперь буду знать)

Аватар пользователя Mj

Автору, большое спасибо) Переехал за 3 минуты, до этого пытался неделю править БД и боролся с дампами!))

Что ты об этом думаешь?

  • Доступны HTML теги: <a> <em> <u> <strong> <strike> <del> <sup> <sub> <code> <pre> <blockquote> <img> <ul> <ol> <li> <dl> <dt> <dd> <table> <th> <tr> <td> <thead> <tbody>
  • Вы можете цитировать другие сообщения, используя теги [quote].
  • Строки и параграфы переносятся автоматически.
  • Вы можете сделать ссылку на другой материал, используя следующий синтакис:
    [node:node_id,title="val2"]
  • Текстовые смайлы будут заменены на графические.
  • Вы можете использовать подсветку исходного кода следующими тегами: <code>, <apache>, <bash>, <css>, <drupal5>, <drupal6>, <html4>, <java>, <javascript>, <php>, <sql>. Исходный PHP-код также может быть заключен в <?php ... ?> или <% ... %>.
CAPTCHA
Этот вопрос для тестирования, являетесь ли вы человеком и для предотвращиния автоматической отправки спама.
5 + 3 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.

Комментарии

RSS-материал

Новые пользователи

Ch
D.Choomc
deque
Antipolizei

Партнёр

Хостинг от HostAce