2.13.1.8. Изменение адреса сайта в WordPress
Внимание!
Перед выполнением действий настоятельно рекомендуется создать резервные копии сайта и его базы данных, чтобы иметь возможность вернуть сайт в исходное состояние, если вдруг что-то пойдёт не так.В статье описаны способы изменения адреса сайта только внутри самого WordPress. Чтобы переименовать сайт на хостинге (виртуальный хост в разделе «Мои сайты» и каталог сайта на FTP), воспользуйтесь инструкцией.
Важные моменты:
- Если старый или новый адрес содержит символы национального алфавита (например, кириллические), его нужно преобразовать в паникод с помощью конвертера.
- Установленный в настройках сайта редирект на HTTP/HTTPS должен соответствовать протоколу в новом адресе. Например, если к сайту подключён сертификат и в настройках сайта установлен редирект на HTTPS, то новый адрес должен начинаться с
https://
. В случае несоответствия протокола на сайте может возникать циклический редирект между протоколамиhttp://
иhttps://
. - Установленный в настройках сайта редирект на адрес с
www
или безwww
должен соответствовать новому адресу. Например, если в настройках сайта установлен редирект на адрес с www, то новый адрес также должен быть с www. В случае несоответствия протокола на сайте может возникать циклический редирект между адресом сwww
и безwww
.
Внимание!
Если названия таблиц в базе данных начинаются не со стандартногоwp_
, а с другого префикса, внесите соответствующие изменения в SQL-запросы.
- В конфигурационном файле сайта посмотрите название базы данных, к которой он подключён.
- Откройте базу данных в phpMyAdmin.
- Выполните следующие три SQL-запроса:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://старый_домен.com', 'http://новый_домен.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = REPLACE(guid, 'http://старый_домен.com','http://новый_домен.com');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://старый_домен.com', 'http://новый_домен.com');
- Для изменения адреса сайта в метаданных следует дополнительно выполнить еще один запрос:
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://старый_домен.com','http://новый_домен.com');
- Если на сайте используются комментарии следует дополнительно выполнить еще два запроса:
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://старый_домен.com', 'http://новый_домен.com'); UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://старый_домен.com', 'http://новый_домен.com');
- Проверьте работу сайта по новому адресу.
- Откройте админ-панель WordPress.
- Перейдите в раздел «Настройки → Общие».
- Укажите новый адрес в полях «Адрес WordPress (URL)» и «Адрес сайта (URL)». Адрес обязательно должен начинаться с протокола
http://
илиhttps://
и в его конце не должно быть слеша/
. Пример правильного адреса:http://example.com
. - Нажмите «Сохранить изменения».
- Проверьте работу сайта по новому адресу.
Внимание!
Способ следует применять с осторожностью, если база данных, к которой подключён сайт, используется одновременно несколькими сайтами.- Подключитесь к хостингу по SSH и установите утилиту, если она ранее не устанавливалась.
- Перейдите в корневой каталог сайта, выполнив команду:
cd ~/example.com/www
В команде вместо
example.com/www
укажите свои данные. - Замените адрес сайта в его базе данных, выполнив команду:
wp search-replace 'old-address.com' 'new-address.com'
В команде вместо
old-address.com
укажите старый адрес сайта, вместоnew-address.com
— новый.
В результате выполнения команды отобразится информация о том, где и сколько было произведено замен. - Проверьте работу сайта по новому адресу.
Настроить поиск с заменой более тонко (например, только по определённым таблицам или столбцам) можно с помощью дополнительных атрибутов, описанных в документации.