Будем считать, что 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 во всех трёх запросах выше.
Используя плагин
Если не хотите выполнять запросы к базе данных, можно воспользоваться плагином
С помощью скрипта
То же самое можно выполнить с помощью PHP-скрипта
Через консоль WP-CLI
Если пользуетесь
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-сертификат
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.