Правильный переезд сайта 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 вашего сайта. Этот фрагмент кода реализует требования, описанные выше:
- Обеспечивает доступность обеих версий сайта (HTTP и HTTPS) одновременно
- По умолчанию указывает ядру WP, что HTTPS версия основная, то есть, карты сайта генерируются для HTTPS-версии
- Принудительно включает 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.