Установка SSl сертификата и перевод Joomla c http на https - часть 2

  • 2 Ответов
  • 440 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

dmitry_stas

тема создана по мотивам решенной. решение мне не понравилось :)

проверка http или https происходит в \libraries\joomla\uri\uri.php function getInstance следующим образом
Код
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off'))
{
$https = 's://';
}
else
{
$https = '://';
}

проблема в том, что очень часто $_SERVER['HTTPS'] отсутствует в принципе. это происходит тогда, когда работает связка nginx + apache. в таком случае nginx выставляет свой заголовок $_SERVER['HTTP_X_FORWARDED_PROTO'] равный https. для апача в таком случае нужно использовать
Код
SetEnvIf X-Forwarded-Proto https HTTPS=on
но как показала практика, отсутствие этого встречается достаточно часто. и Joomla неправильно определяет текущий протокол https, определяет его как http со всеми вытекающими.

итого, решений собственно 2:
1. добавить в секции нужного виртуалхоста для апача указанную выше директиву SetEnvIf...
2. имхо более правильный для Joomla в плане универсальности - изменить проверку в \libraries\joomla\uri\uri.php и учитывать $_SERVER['HTTP_X_FORWARDED_PROTO']
Код
if (isset($server['HTTP_X_FORWARDED_PROTO']) && $server['HTTP_X_FORWARDED_PROTO'] == 'https' || isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS'])!= 'off'))

если кто имеет доступ к багтрекеру - можно отписать.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

voland

  • ********
  • 9335
  • [+]520 / [-]101
  • СКАЙП утерян! Пишите в телеграм @volandku
Доступ вроде публичный.
Но если лень - могу отписать, только просьба сформулировать по аглицки

*

insider

  • ***
  • 71
  • [+]0 / [-]0
  • Дорога возникает под шагами идущего.
Ничего не получается. Не совсем понял что на что менять. По первому методу белая страница. Дизайн уехал.