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)