Настройка WordPress HTTPS

https-5402753

5 февраля 2020 WordPress

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

1. Изменяем ссылки в базе данных.

Первым делом необходимо изменить все ссылки с http на https в базе WordPress. В phpMyAdmin или Adminer нужно выбрать используемую базу данных и перейти во вкладку SQL. Далее необходимо выполнить 3 основных запроса к базе данных для изменения домена с http на https. Принцип тот же, что и при переносе сайта на другой домен.

screenshot_1-1024x479-3313773

UPDATE wp_options SET option_value = REPLACE(option_value, 'https://it-blog.ru', 'https://it-blog.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, 'https://it-blog.ru', 'https://it-blog.ru');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'https://it-blog.ru','https://it-blog.ru');

Это основные манипуляции для перехода, но в базе данных по прежнему могут остаться данные домена с http. Поэтому нужно сделать еще несколько запросов.

Обновляем guid

guid используется как глобальный идентификатор в RSS.

Аналогично предыдущим 3 запросам выполняем еще один:

UPDATE wp_posts SET guid = REPLACE (guid, 'http://it-blog.ru', 'https://it-blog.ru') WHERE post_type = 'attachment';

Обновляем домен с http в комментариях

Ссылки на домен c http могут остаться в комментариях, поэтому делаем еще пару запросов:

UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'https://it-blog.ru', 'https://it-blog.ru');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'https://it-blog.ru', 'https://it-blog.ru');

В базе так же могут остаться и другие таблицы с указанием домена c http. Можно проверить это воспользовавшись поиском в phpMyAdmin. В строку поиска вводим адрес сайта с http и выбираем все таблицы.

screenshot_2-1024x504-6613515

2. Редирект всех страниц с http на https на WordPress.

Чтобы не осталось дублей страниц с http и сайт всегда открывался с защищенным соединением https необходимо настроить 301 редирект. Для этого открываем на редактирование файл .htaccess из корня сайта. И добавляем туда следующие строки после RewriteEngine On:

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Итоговый файл .htaccess:

# BEGIN WordPress

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Если после изменения файла .htaccess возникает ошибка «Сайт выполнил переадресацию слишком много раз», то в 99% случаев на хостинге уже стоит переадресация и менять ничего не нужно.

3. Изменение robots.txt

Не забываем поменять ссылки с http на https в файле robots.txt. В директиве Host: обязательно указываем ссылку на сайт с https.

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