Ходят слухи, что гугл поднимает сайты с поддержкой HTTPS повыше в поисковой выдаче. Кроме того, добавление SSL сертификата повысит безопасность сайта в целом. Тем более, что помимо StartSSL и WoSign бесплатные сертификаты совсем скоро начнет выдавать Let’s Encrypt.
WordPress по умолчанию хранит все ссылки с добавлением протокола, поэтому для полноценной поддержки необходимо внести изменения в базу данных. При этом следует учесть, что чтобы не сломать HTTP, можно перейти на относительные ссылки внутри сайта вместо абсолютных. Для этого в консоли mysql делаем для БД блога замену в таблице wp_posts (если используются плагины подмены имен таблиц, название нужно заменить на своё корректное):
mysql> use wordpress; mysql> UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://DOMAIN.COM/', '/');
Здесь и далее DOMAIN.COM нужно заменить на адрес сайта, где расположен WordPress. В основных настройках админки блога есть возможность указать базовую ссылку. Она тоже должна быть в формате с протоколом. Как быть, если требуется поддержка обоих? Идём в wp-config.php и городим там велосипед:
function isSecure() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443; } $web_site_url = 'DOMAIN.COM'; if (isSecure()) { define('WP_HOME', 'https://' . $web_site_url); define('WP_SITEURL','https://' . $web_site_url); } else { define('WP_HOME', 'http://' . $web_site_url); define('WP_SITEURL','http://' . $web_site_url); }
По желанию добавляем обязательное использование HTTPS при логине и/или пользовании админкой:
define( 'FORCE_SSL_LOGIN', true ); define( 'FORCE_SSL_ADMIN', true );
Ссылки: