diff --git a/libraries/joomla/uri/uri.php b/libraries/joomla/uri/uri.php index ccff0b6619cbd..a673c9dd4eba1 100644 --- a/libraries/joomla/uri/uri.php +++ b/libraries/joomla/uri/uri.php @@ -63,7 +63,19 @@ public static function getInstance($uri = 'SERVER') if ($uri == 'SERVER') { // Determine if the request was over SSL (HTTPS). - if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) + if + ( + ( + isset($_SERVER['HTTPS']) && + !empty($_SERVER['HTTPS']) && + (strtolower($_SERVER['HTTPS']) != 'off') + ) + || + ( + isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && + $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' + ) + ) { $https = 's://'; } diff --git a/libraries/vendor/joomla/application/src/AbstractWebApplication.php b/libraries/vendor/joomla/application/src/AbstractWebApplication.php index 961bc69f47290..fbc4bc1d36067 100644 --- a/libraries/vendor/joomla/application/src/AbstractWebApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractWebApplication.php @@ -636,7 +636,8 @@ protected function header($string, $replace = true, $code = null) */ public function isSSLConnection() { - return (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off'); + return (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') || + (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'); } /**