Fornex
Европейский
хостинг

    Чтобы включить HTTPS для панели администратора, необходимо поместить следующую строку в wp-config.php, который хранится в корневой папке вашей сборки WordPress:

    define('FORCE_SSL_ADMIN', true);  
    

    Протестировать работоспособность HTTPS можно перейдя по ссылке https://mysite.com/wp-admin/.

    Далее переносим фронтэнд на HTTPS. Перевести все сразу на HTTPS будет сложно, поэтому лучше делать это поочерёдно и начать с одной страницы.

    Существует плагин, который позволяет это сделать — WordPress HTTPS (SSL), с помощью него можно активировать принудительный вход в админку через https, настраивать https только для определенных страничек\записей, либо для определенных адресов по регулярным выражениям, удалять со страницы весь не https-контент, изменять исходящие ссылки с http на https версии сайтов и пр.

    file

    Далее нужно избавиться от уведомлений о смешанном контенте (Mixed Content).

    Для этого выбираем закладку «Console» («Консоль») в списке сверху и получаем список наших ошибок, указанных как Mixed Content.

    file

    Индивидуально исправляем все указанные проблемы.

    Относительные URL (относительно протокола).

    URL-адреса, которые начинаются с двух слэшей (//):

    <img src="//example.com/image.jpg" alt="image">  
    

    Они будут подгружать ресурсы для того протокола, который задан для страницы. Ссылки, которые являются относительными, тоже будут вполне приемлемы:

    <img src="/images/image.jpg" alt="image">  
    

    Изображения в старом контенте с HTTP-ссылками.

    Первое, выполняем несколько SQL-запросов для исправления URL в базе данных, чтобы исправить src изображений, сделав их относительными (относительно протокола).

    Выполняем бэкап базы данных:

    UPDATE wp_posts  
    SET    post_content = ( Replace (post_content, 'src="http://', 'src="//') )  
    WHERE  Instr(post_content, 'jpeg') > 0  
    OR Instr(post_content, 'jpg') > 0  
    OR Instr(post_content, 'gif') > 0  
    OR Instr(post_content, 'png') > 0;  
    

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

    UPDATE wp_posts  
    SET   post_content = ( Replace (post_content, "src='http://", "src='//") )  
    WHERE  Instr(post_content, 'jpeg') > 0  
    OR Instr(post_content, 'jpg') > 0  
    OR Instr(post_content, 'gif') > 0  
    OR Instr(post_content, 'png') > 0;  
    

    Правим произвольные поля:

    UPDATE wp_postmeta  
    SET meta_value=(REPLACE (meta_value, 'iframe src="http://','iframe src="//'));  
    

    Убеждаемся в том, что новые изображения являются относительными (относительно протокола) и в том что с новым контентом тоже все будет в порядке. Для этого нужно поправить все вещи, связанные с загрузчиком медиа-файлов, чтобы он добавлял изображения с относительными URL (относительно протокола).

    Если у вас включен CDN, вам нужно убедиться в том, что все ресурсы передаются с него через HTTPS.

    Запускаем HTTPS везде на сайте.

    Делается это в .htaccess в корне сборки WordPress:

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

    Как только этот код будет помещен в файл, вы сможете отключить плагин и удалить код из wp-config.php.

    Также вам понадобится сменить параметры URL в общих настройках, сделав их https://. Таким образом, все ссылки в WordPress будут должным образом сформированы:

    file