✔ WordPress: Смена доменного имени.

Содержание:

1. Постановка задачи.
2. Настройка Nginx.
3. Настройка WordPress.

3.1. Панель управления WordPress.
3.2. Файл конфигурации WordPress.

4. Модификация баз данных сайта.
5. Оригиналы источников информации.


1. Постановка задачи.

Задача: Поменять доменное имя своего сайта. Сайт вырос из тестового в функционирующий. Пора сайту взрослеть и получать свое удобное для всех доменное имя.

Старое имя: domain.ru.

Новое имя: newdomain.ru.

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

2. Настройка Nginx.

Начнем с того, что получим сертификаты от Let’s Encrypt для нового доменного имени newdomain.ru и www.newdomain.ru, если кто на ‘www‘ любит ломиться из посетителей.

Как получить сертификаты подробно описано в статье «Nginx: Настройка web-сервера, php-fpm, php7.4 из актуальных репозиториев на 2020 год».

Скопируем в каталоге /etc/nginx/conf.d файл виртуального домена nginxdomain.ru.conf, переименуем его в newdomain.ru.conf

Заменим в новом файле виртуального домена старое имя домена domain.ru на новое имя домена newdomain.ru.

Сохраним новый файл конфигурации рядом со старым файлом конфигурации.

Проверим не наделали ли мы ошибок в новом файле конфигурации:

# nginx -t

Если у вас всё так же — всё хорошо!

Старый файл старого доменного имени domain.ru.conf заполняем новым содержанием:

server {
    listen 443 ssl http2;
    server_name domain.ru;
    return 301 https://newdomain.ru$request_uri;

    ssl_certificate		/etc/letsencrypt/live/domain.ru/fullchain.pem;
    ssl_certificate_key		/etc/letsencrypt/live/domain.ru/privkey.pem;
    ssl_trusted_certificate	/etc/letsencrypt/live/domain.ru/fullchain.pem;
}

server {
     listen 443 ssl http2;
     server_name www.domain.ru;
     return 301 https://newdomain.ru$request_uri;

     ssl_certificate		/etc/letsencrypt/live/www.domain.ru/fullchain.pem;
     ssl_certificate_key	/etc/letsencrypt/live/www.domain.ru/privkey.pem;
     ssl_trusted_certificate	/etc/letsencrypt/live/www.domain.ru/fullchain.pem;
}

server {
    listen 80;
    server_name domain.ru;

    location / {
    return 301 https://newdomain.ru$request_uri;
    }
}

server {
     listen  80;
     server_name www.domain.ru;
     return 301 https://newdomain.ru$request_uri;
}

Теперь все, кто будет ломиться на старый домен domain.ru, будут автоматически перенаправляться на новый newdomain.ru. Да и мы тоже не потеряем контроль над сайтом во время смены доменного имени по всем конфигурациям и базам данных.

Проверим всё ли заполнено верно?

# nginx -t

Если у вас всё так же — всё хорошо!

Можно и перезапустить nginx по нашим новым правилам.

# systemctl restart nginx

Всё, теперь старая аудитория будет попадать на сайт и привыкать к новому доменному имени. Со временем можно будет удалить старое доменное имя насовсем.

3. Настройка WordPress.

3.1. Панель управления WordPress.

Первым делом сменить доменное имя в панели управления WordPress. Так как мы с вами сделали переадресацию в nginx, то потеря контроля над сайтом нам не грозит. Можно работать смело!

Для начала процедуры, зайдите в панель управления сайтом и откройте Настройки —> Общие:

Это окно содержит общие настройки сайта.

Нас интересуют два поля: Адрес WordPress (URL) и Адрес сайта (URL).

Заменим их содержимое на: 

https://newdomain.ru

Сохраним изменение клавишей Сохранить внизу страницы с конфигурацией.

3.2. Файл конфигурации WordPress.

Модифицируем файл конфигурации wp-config.php в web-каталоге WordPress. Каталог из которого происходит раздача контента сайта.

# mcedit wp-config.php

Ищем строку начала приветствия в файле конфигурации.

// ** Параметры MySQL: Эту информацию можно получить у вашего хостинг-провайдера ** //

После этой строки вставляем еще 2 строки с параметрами доменного имени сайта:

// ** Параметры MySQL: Эту информацию можно получить у вашего хостинг-провайдера ** //

define ('WP_HOME','https://newdomain.ru/');
define ('WP_SITEURL','https://newdomain.ru/');

Сохраняем файл конфигурации и выходим из него.

4. Модификация баз данных сайта.

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

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

Далее выбираем вкладку «SQL».

На странице «SQL» сделайте такие три запроса.

Внимание! Прогнать запросы нужно по ‘http://‘ потом по ‘https://‘. Так как сейчас в приоритете передача по ‘https://‘, за одно и заменим на правильные, с точки зрения безопасной передачи информации, ссылки.

Первый запрос.

UPDATE wp_options SET option_value = replace(option_value, 'http://domain.ru', 'https://newdomain.ru') WHERE option_name = 'home' OR option_name = 'siteurl';

В запросе измените ’http://domаin. ru’ на название вашего старого доменного имени и ’https://newdomain. ru’ — на новое доменное имя. Данным запросом мы изменим доменное имя для WordPress.

Второй запрос.

UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://domаin.ru', 'https://newdomain.ru');

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

Третий запрос.

UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://domаin.ru', 'https://newdomain.ru');

и

UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://domаin.ru', 'https://newdomain.ru');

В итоге наши запросы должны выглядеть таким образом:

Проверяем корректность введенных данных и нажимаем на кнопку «GO».

Получаем такой результат, который обозначает, что все переменные были успешно изменены:

5. Оригиналы источников информации.

  1. vachevskiy.ru «Как сменить домен на сайте WordPress за 5 минут».
  2. hostiq.ua «Изменение доменного имени в WordPress».

Читайте также: