Порядок перехода на защищённый протокол HTTPS для сайта на WordPress выглядит следующим образом:

1. Проверяем доступность сайта по новому протоколу — вводим в адресную строку адрес сайта вида https://адрес_сайта.ру.

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

2. Открываем файл .htaccess и в самое начало добавляем:

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

<ifModule mod_headers.c>
 Header always set Content-Security-Policy "upgrade-insecure-requests;"
</ifModule> 

3. Файл wp-config.php. В самое начало файла добавляем:

define( 'FORCE_SSL_ADMIN', true );
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
$_SERVER['HTTPS'] = 'on';
/* SSL в панели администратора / 
define('FORCE_SSL_LOGIN', true); 
/ SSL в панели входа */
 define('FORCE_SSL_ADMIN', true);

4. В самую последнюю очередь — меняем адрес сайта в настойках в административной панели:

Общие настройки -> Адрес WordPress (URL)
Общие настройки -> Адрес сайта (URL)

Прописываем в указанных полях адрес сайта вида https://адрес_сайта.ру.

Всё, переезд завершён.

Теперь давайте рассмотрим некоторые проблемы, которые могут возникнуть в процессе переезда вашего сайта на защищённый протокол.

1. Поехала вёрстка

Чтобы избежать этого, в файл .htaccess мы добавили вот эти строки:

<ifModule mod_headers.c>
 Header always set Content-Security-Policy "upgrade-insecure-requests;"
</ifModule> 

Если верстка поехала, значит либо запись произведена с ошибкой — скопируйте код ещё раз, посмотрите в блокноте, не появились ли лишние символы или кавычки, либо была вставлена не в начало файла (это важно!), а в его конец — это достаточно распространённая ошибка.

2. Нет доступа к админке

Например, ошибка типа «у вас недостаточно полномочий для доступа к этой странице», или «сайт выполнил переадресацию слишком много раз», или админка не открывается вовсе.

Вероятно, вы где-то нарушили порядок действий, или прописали излишнее количество правил в файле .htaccess.

Сделайте копию Вашего старого .htaccess. Скачайте дефолтный .htaccess для сайта на WordPress и в самое начало (это важно!) добавьте:

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

<ifModule mod_headers.c>
 Header always set Content-Security-Policy "upgrade-insecure-requests;"
</ifModule> 

Если проблема решилась — постепенно добавляйте нужные Вам записи из старого .htaccess и тестируйте — это поможет исключить правило, которое провоцирует проблему.

Решение проблемы «у вас недостаточно полномочий для доступа к этой странице» смотрите в статье У вас недостаточно полномочий для доступа к этой странице.


0 комментариев

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

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