Суббота, 11 ноября 2017 08:30

HTTPS и бесконечный редирект Joomla

На некоторых хостингах при включении HTTPS в Joomla возникает циклическая переадресация или бесконечный редирект.
есть два варианта решения проблемы:

1. вариант: .htaccess

в файле .htaccess после строки

RewriteEngine On

нужно добавить следующий код:

RewriteCond %{HTTP:X-FORWARDED-PROTO} ^https$
RewriteRule .? - [E=HTTPS:on]

Для таймвеба код должен быть такой:

RewriteCond %{HTTP:X-HTTPS} ^1$
RewriteRule .? - [E=HTTPS:on]

Важно:
метод испытан и успешно работает в режиме PHP как FastCGI
в режиме PHP как CGI это не работает, т.к. переменная окружения не добавляется

Еще один способ этого же варианта, еще короче:

SetEnvIf X-Forwarded-Proto https HTTPS=on

2 вариант

Если у вас нет возможности использовать FastCGI, тогда поможет это:

В файле /libraries/joomla/uri/uri.php заменить строку:

if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off'))

на:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')

патч нужно применять после каждого обновления

Прочитано 51 раз
Твитнуть