Настройка SSL на WordPress

Рабочий проверенный метод

В wp-config.php до

/* Это всё, дальше не редактируем. Успехов! */

пишем

define('FORCE_SSL_ADMIN', true);

Перед

require_once(ABSPATH . 'wp-settings.php');

пишем:

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';

или, если не сработал верхний:

if (isset($_SERVER['HTTP_X_HTTPS'])&&$_SERVER['HTTP_X_HTTPS']==1)
$_SERVER['HTTPS']='on';

Для установки редиректа в .htaccess в самом верху ставим

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

и все.

Также можно установить адрес сайта через wp-config.php. Для этого, после

define('WP_DEBUG', false);

пишем:

define('WP_HOME', 'https://site.ru');
define('WP_SITEURL', 'https://site.ru');

Все, что ниже не делаем. И не забываем менять ссылки в базе данных.


Костыли, которые не помогли ранее

 

Обычная смена адреса сайта в админке мне не помогла, не загружались по https скрипты и стили. Методом почти дневного поиска в гугле был найден способ добавления в wp-config.php следующих строк:

add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2);
function agnostic_script_loader_src($src, $handle) {
return preg_replace('/^(http|https):/', '', $src);
}

add_filter('style_loader_src', 'agnostic_style_loader_src', 20,2);
function agnostic_style_loader_src($src, $handle) {
return preg_replace('/^(http|https):/', '', $src);
}

Перед этим выведены настройки адреса сайта. Мне он более предпочтительный, так как если что пойдет не так, всегда можно изменить в один клик:

define('WP_HOME', 'https://site.ru');
define('WP_SITEURL', 'https://site.ru');

 

 First maniac| 31.05.2015 17:09
Рейтинг
Комментарии
Нет комментариев. Ваш будет первым!
Для написания комментария необходимо Войти или Зарегистрироваться
Войти на сайт