Иногда может возникнуть ситуация, когда необходимо сайт, работающий на движке WordPress, перенести на новый домен. Т.е. суть данного действа заключается только в изменении имени домена, все содержимое же, равно как и структура ссылок, остается прежним.
Есть несколько вариантов но мне нравится этот:
- Зайдите в phpMyAdmin и выберите базу данных.
- Нажмите на вкладку «SQL» и поочередно выполните следующие 3 запроса, заменивhttps://domain.ru и https://newdomain.ru соответственно на старый и новый адреса сайта (обратите внимание, что в конце адреса не должно быть слеша):
UPDATE wp_options SET option_value = replace(option_value, 'https://domain.ru', 'https://newdomain.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'https://domain.ru','https://newdomain.ru');
UPDATE wp_posts SET post_content = replace(post_content, 'https://domain.ru', 'https://newdomain.ru');
А здесь более расширенно по всем типам
#posts UPDATE wp_posts SET guid = REPLACE (guid, 'old_domain.com/', 'new_domain.com/'); UPDATE wp_posts SET post_excerpt = REPLACE (post_excerpt, 'old_domain.com/', 'new_domain.com/'); UPDATE wp_posts SET post_content = REPLACE (post_content, 'old_domain.com/', 'new_domain.com/'); UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'old_domain.com/', 'new_domain.com/'); #comments UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'old_domain.com/', 'new_domain.com/'); UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'old_domain.com/', 'new_domain.com/'); UPDATE wp_commentmeta SET meta_value = REPLACE (meta_value, 'old_domain.com/', 'new_domain.com/'); #links UPDATE wp_links SET link_url = REPLACE (link_url, 'old_domain.com/', 'new_domain.com/'); UPDATE wp_links SET link_rss = REPLACE (link_rss, 'old_domain.com/', 'new_domain.com/'); #options UPDATE wp_options SET option_value = REPLACE (option_value, 'old_domain.com/', 'new_domain.com/'); #usermeta UPDATE wp_usermeta SET meta_value = REPLACE (meta_value, 'old_domain.com/', 'new_domain.com/'); #posts UPDATE wp_posts SET guid = REPLACE (guid, 'old_domain.com', 'new_domain.com'); UPDATE wp_posts SET post_excerpt = REPLACE (post_excerpt, 'old_domain.com', 'new_domain.com'); UPDATE wp_posts SET post_content = REPLACE (post_content, 'old_domain.com', 'new_domain.com'); UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'old_domain.com', 'new_domain.com'); #comments UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'old_domain.com', 'new_domain.com'); UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'old_domain.com', 'new_domain.com'); UPDATE wp_commentmeta SET meta_value = REPLACE (meta_value, 'old_domain.com', 'new_domain.com'); #Links UPDATE wp_links SET link_url = REPLACE (link_url, 'old_domain.com', 'new_domain.com'); UPDATE wp_links SET link_rss = REPLACE (link_rss, 'old_domain.com', 'new_domain.com'); #options UPDATE wp_options SET option_value = REPLACE (option_value, 'old_domain.com', 'new_domain.com'); #usermeta UPDATE wp_usermeta SET meta_value = REPLACE (meta_value, 'old_domain.com', 'new_domain.com');
Но даже после манипуляций с БД сайт может работать некорректно. Все дело в сериализации данных в БД.
Может возникнуть ошибка после смены почты админа «Вам запрещено просматривать эту страницу» — фиксим в user_meta поле wp_capabilities
#from a:1:{s:13:"administrator";b:1;} #to a:1:{s:13:"administrator";s:1:"1";}
Готово. Теперь сайт будет открываться по новому адресу.
Включение 301 редиректа со старого домена на новый
Осталось сделать чтоб при открытии любой страницы сайта по старому домену посетитель автоматически попадал на ту же страницу, но только в новом домене.
Для этого замените содержимое .htaccess (файл находится в корне папки старого домена), на следующее (вместо new-site.ua укажите новый домен):
<FilesMatch "robots.txt$"> RewriteEngine off </FilesMatch> #Options +FollowSymlinks Options +SymLinksIfOwnerMatch RewriteEngine on RewriteRule (.*) https://www.wpdew.com/$1 [R=301,L]
Все, процедура переноса WordPress-сайта законченна.
Относительно того как сохранить PR и тИЦ сайта.
Вышеуказанная настройка пере адресации позволяет перенести на новое доменное имя Google PR, тут не должно быть проблем.
По поводу тИЦ Яндекса: создайте на старом домене файл robots.txt и укажите в нем:
User-Agent: *
Disallow:
Host: new-site.ua