Правильный переезд сайта WordPress на HTTPS

Иван Никитин и партнерыНовостиWordPressПравильный переезд сайта WordPress на HTTPS

Защищенный протокол HTTPS сегодня стал стандартом де-факто, и если ваш сайт еще не перешел на HTTPS, то, наверное, сейчас самое время задуматься об этом переезде. Ведь уже летом браузер Google Chrome будет помечать все не-HTTPS сайты как небезопасные. Кроме того:

  • Google однозначно считает наличие HTTPS сигналом ранжирования
  • Без HTTPS не работают некоторые технологии, например, Service Workers
  • Ну и понятно, это еще один уровень безопасности сайта в целом.

В принципе, последовательность перехода на HTTPS достаточно хорошо описана во многих источниках, например, у Яндекса. Но для нас важно обеспечить эти рекомендации на стороне WordPress. Здесь мы опустим процесс получения сертификата и настройки веб-сервера, предполагается, что вы всё это уже сделали, и сервер уже обеспечивает подключение по HTTPS.

Проблема в том, что при стандартной настройке WP можно выбрать главным ИЛИ https ИЛИ http версию сайта, а Яндекс рекомендует обеспечить обе версии одновременно пока происходит склейка зеркал (до 3 — 4 недель), при этом карта сайта должна быть однозначно HTTPS-версии.

Стандартными настройками WordPress этого не сделать, поэтому вот небольшой фрагмент кода, который нужно разместить в начале файла wp-config.php вашего сайта. Этот фрагмент кода реализует требования, описанные выше:

  1. Обеспечивает доступность обеих версий сайта (HTTP и HTTPS) одновременно
  2. По умолчанию указывает ядру WP, что HTTPS версия основная, то есть, карты сайта генерируются для HTTPS-версии
  3. Принудительно включает HTTPS при обращении к адмнике сайта.
/**
* Разместите этот код в начале файла wp-config.php
*/
function isSecure() {
return
(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
|| $_SERVER['SERVER_PORT'] == 443;
}
 
$web_site     = 'www.mysite.ru';   // Укажите здесь главное зеркало вашего сайта (с www или без www)
$schema       = isSecure() ? 'https://' : 'http://';
$web_site_url = $schema . $web_site;
define('WP_HOME',    $web_site_url);
define('WP_SITEURL', $web_site_url);
define('FORCE_SSL_ADMIN', true);

После того, как переезд на HTTPS будет завершен, этот код можно убрать и указать HTTPS как основную штатными средствами WordPress.

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