2.14.1.8. Изменение адреса сайта в WordPress

Внимание!

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

Важные моменты:

  • Если старый или новый адрес содержит символы национального алфавита (например, кириллические), его нужно преобразовать в паникод с помощью Punycode-конвертера.
  • Установленный в настройках сайта редирект на HTTP/HTTPS должен соответствовать протоколу в новом адресе. Например, если к сайту подключён сертификат и в настройках сайта установлен редирект на HTTPS, то новый адрес должен начинаться с https://. В случае несоответствия протокола на сайте может возникать циклический редирект между протоколами http:// и https://.
  • Установленный в настройках сайта редирект на адрес с www или без www должен соответствовать новому адресу. Например, если в настройках сайта установлен редирект на адрес с www, то новый адрес также должен быть с www. В случае несоответствия протокола на сайте может возникать циклический редирект между адресом с www и без www.

В статье описаны разные способы изменения адреса сайта внутри самого WordPress. Для переименования сайта в разделе «Мои сайты» см. Изменение имени сайта.

  1. Откройте раздел «Установка CMS».
  2. Нажмите «Сменить адрес».
  3. Введите новый адрес сайта и нажмите «Изменить адрес сайта».

Система берёт из конфигурационного файла сайта название используемой базы данных и меняет в ней старый адрес на новый.

Внимание!

Если названия таблиц в базе данных вместо стандартного wp_ начинаются с другого префикса, измените префикс в SQL-запросах.
  1. В конфигурационном файле сайта посмотрите название базы данных, к которой он подключён.
  2. Откройте базу данных в phpMyAdmin.
  3. Выполните следующие три SQL-запроса:
    UPDATE wp_options SET option_value = REPLACE(option_value, 'http://old-address.com', 'http://new-address.com') WHERE option_name = 'home' OR option_name = 'siteurl';
    UPDATE wp_posts SET guid = REPLACE(guid, 'http://old-address.com','http://new-address.com');
    UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://old-address.com', 'http://new-address.com');
  4. Для изменения адреса сайта в метаданных дополнительно выполните запрос:
    UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://old-address.com','http://new-address.com');
  5. Если на сайте используются комментарии, выполните ещё два запроса:
    UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://old-address.com', 'http://new-address.com');
    UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://old-address.com', 'http://new-address.com');
  6. Проверьте работу сайта по новому адресу.
  1. Перейдите в раздел «Настройки → Общие».
  2. В полях «Адрес WordPress (URL)» и «Адрес сайта (URL)» укажите новый адрес (обязательно должен начинаться с http:// или https:// и в конце не должно быть слеша /, например http://example.com) и сохраните изменения.
  3. Проверьте работу сайта по новому адресу.

Внимание!

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

Для смены адреса в WordPress можно использовать специализированную утилиту WP-CLI (доступна на хостинге по умолчанию).

  1. Подключитесь к хостингу по SSH.
  2. Перейдите в корневой каталог сайта (вместо example.com/www используйте свои данные):
    cd ~/example.com/www
  3. Замените адрес сайта в его базе данных (вместо old-address.com укажите старый адрес сайта, вместо new-address.com — новый):
    wp search-replace 'old-address.com' 'new-address.com'

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

  4. Проверьте работу сайта по новому адресу.

Настроить поиск с заменой более тонко (например, только по определённым таблицам или столбцам) можно с помощью дополнительных атрибутов, описанных в документации WP-CLI.

Содержание

    (10)