Виртуальный хост Apache — Имитировать $_SERVER[‘HTTPS’] = ‘вкл.’;

#wordpress #apache #ssl #redirect #https

#wordpress #апач #ssl #перенаправление #https #apache

Вопрос:

Я пытаюсь имитировать добавление этого в wp-config.php:

 $_SERVER['HTTPS'] = 'on';
  

За исключением формата, который выполняется в Apache «Virtual Host Include». Насколько я понимаю, это, по сути, сообщает WordPress, что SSL включен.

Все мои сайты используют CloudFlare Flexible SSL (принудительное перенаправление https в CF), ни у одного из них нет сертификата от AutoSSL / cPanel.

Без использования этого кода переход в /wp-admin приведет к циклу перенаправления. Но на то, чтобы просмотреть и добавить код ко всем текущим и будущим доменам, уходит очень много времени.

Я перепробовал миллион кодов, но ни один из них не работает. Вот пример:

 <VirtualHost *:80>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
  

Кто-нибудь знает правильный код Include Editor / VirtualHost для достижения этой цели? Мне просто нужно сообщить WordPress, что SSL включен, несмотря на отсутствие действительного сертификата в cPanel. Я использую CF SSL для всех своих сайтов.

Или, может быть, я полностью отключен и для этого мне нужно отредактировать другой файл?

Работает под управлением CentOS 7.8 / WHM 90.0.5 / Apache 2.4.

Ответ №1:

После нескольких дней поиска я наконец нашел ответ.

Добавить в Pre Main Include (pre_main_global.conf):

 <IfModule mod_setenvif.c>
SetEnvIf X-Forwarded-Proto "https" HTTPS=on
</IfModule>