Настройка HTTPS для сайта на WordPress

Admin MySQL, WordPress 2 комментария

После получения сертификата на VPS сервере нужно правильно настроить работу сайта на WordPress через защищенный протокол.

Смотрите также статью получение бесплатного SSL сертификата. А если у вас панель Vesta, то установка сертификата ещё проще.

Отправляем весь трафик с http на https

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

А если заглянуть в код сайта через инспектор браузера, то там возле таких элементов, можно заметить сообщения с предупреждением, что данные передаются незашифровано.

The page at https://www….ru/ was not allowed to run insecure content from …

Для начала я думал проблема в подключении файлов через:

И если её заменить на:

то всё должно заработать. Из WordPress документации следует, что get_bloginfo отдаёт адрес сайта без шифрования, в то время как get_template_directory_uri вставляет сразу с https. Но это проблемы не решило. Можно пути не менять.

Также в Интернете встречаются рекомендации внести в файл wp-config.php следующие параметры:

Однако, если точно следовать статье по получению сертификата SSL и дальнейшей настройки описанной в текущей статье, то это тоже не нужно.

Для перехода WordPress на зашифрованный трафик есть одна правильная и необходимая команда. Её нужно внести в файл wp-config.php:

Меняем адреса в MySQL

Заходим в phpMyAdmin. Сначала обязательно делаем резервную копию, а затем выполняем команды MySQL по замене старого URL http на новые https:

В коде выше замените адрес сайта на свой.

Я учел все данные с http в своей базе. Возможно в вашем случае поменяется не все URL адреса. Для проверки заходим в поиск и вводим свой сайт:

Смотрим результаты:

Видим, что сайтов с http:// больше нигде нет, кроме одного значения. Заходим внутрь и исправляем. У вас могут быть значения указаны в других местах.

При замене адреса http на https в MySQL могут полететь какие-нибудь настройки плагинов. У меня так произошло с плагином Contextual Related Posts. В этом случае, заново придётся настроить плагин.

Встречающиеся ошибки

Не получается войти в панель администратора wp-login.php или /wp-admin/. Прежде всего надо почистить cookie.

Файл .htaccess

Можно также попробовать перевести сайт на зашифрованный трафик через .htaccess:

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

Но иногда из-за этого можно получить ошибки, браузер будет ругаться на превышение редиректов:

Could not open the page, too many redirects

И страница открываться не будет.

Рабочая настройка для дружелюбных ссылок на WordPress в файле htaccess выглядет так:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

English Query (запросы по теме на английском языке)

Can't access wordpress admin https

bloginfo() and get_template_directory_uri() with SSL

get_template_directory_uri() returns http instead of https

Привет. Ты находишься на моём сайте. Я разработчик. Здесь я делюсь своими наработками и знаниями. Спрашивай в комментариях, если тебе что-то не понятно или пиши, если есть что добавить.

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Комментарии к статье “Настройка HTTPS для сайта на WordPress” (2)

  • Аватар
    Дмитрий
    04.01.2019 в 12:15

    Добрый день. На своем сайте я установил https протокол, после этого сайт потерял свои позиции и уже два года я не могу их вернуть. Подскажите в чем причина и что делать? Спасибо

    • Admin
      Admin
      Автор записи
      06.01.2019 в 14:27

      Сама по себе установка протокола HTTPS не может повлиять плохо на поисковые системы. Как раз-таки наоборот. Ищите причину в другом.

      Ещё вариант, что вы не правильно что-то установили, но это проверить просто. Если браузеры в разных операционных системах не ругаются ни на что, а сайт открывается нормально и быстро, то всё в порядке.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи: "Настройка HTTPS для сайта на WordPress".

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Если вам нужно добавить участок кода ставьте его между тегами <code></code>