Как настроить HTTPS для WordPress

Будем считать, что SSL-сертификат уже куплен и установлен на сервер или хостинг. В любом случае это тема отдельной статьи.

Измените адрес сайта

Измените URL сайта НастройкиОбщие.

То же самое можно сделать через конфигурационный файл wp-config.php с помощью констант WP_HOME и WP_SITEURL. Это может оказаться полезным, если сайт недоступен, например вы совершили ошибку при написании домена.

Поменяйте старые URL на новые

На страницах WordPress скорее всего могли присутствовать URL адреса (в контенте, в меню и т.п.), которые так же нуждаются в корректировке.

Это можно сделать несколькими способами: через запрос к базе данных, используя плагин, скрипт или консоль с WP-CLI.

Через запрос к базе данных

В PhpMyAdmin или через консоль сервера выберите необходимую базу и по очереди выполните следующие SQL-запросы:

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

UPDATE wp_posts SET guid = REPLACE(guid, 'http://site.ru','https://site.ru'); 

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://site.ru', 'https://site.ru');

Примечание: В указанном запросе префикс таблицы может отличаться от wp_. Если это так, измените префикс таблицы на используемый вашим WordPress во всех трёх запросах выше.

Используя плагин

Если не хотите выполнять запросы к базе данных, можно воспользоваться плагином Velvet Blues Update URLs. Он может найти в базе данных старые адреса и поменять их на новые.

С помощью скрипта

То же самое можно выполнить с помощью PHP-скрипта Search Replace DB с графическим интерфейсом.

Через консоль WP-CLI

Если пользуетесь WP-CLI, то можно быстро выполнить поиск с заменой командой search-replace.

wp search-replace 'http://site.ru' 'https://site.ru'

Настройте 301 редирект с http на https

Настройте в редирект всех страниц с HTTP на HTTPS.

Если в качестве web-сервера используется Apache, внесите изменения в файл .htaccess:

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

если вариант выше не сработал:

RewriteEngine On
RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

или (если возникает циклическая переадресация):

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

и последний вариант:

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

Теперь сайт будет работать по протоколу HTTPS.

Полезные ссылки

Как установить SSL-сертификат
Настройка SSL на WordPress
Редирект с http на https для Linux

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

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

Пожалуйста, поддержите проект

Даже небольшая сумма поможет писать больше полезных статей.