348c348,379 < $base_root = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http'; --- > if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { > // We're running HTTPS natively in the web server. > $base_root = 'https'; > } > elseif (!isset($conf['reverse_proxy']) || $conf['reverse_proxy'] === TRUE) { > // Only trust this header if reverse_proxy is on or unset. Note that > // this header is provided by the client and therefore can't be trusted. > if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) { > // We're behind a proxy that talks to the web server via HTTP. > if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == "https" || $_SERVER['HTTP_X_FORWARDED_PROTO'] == "HTTPS") { > // We appear to be behind a proxy. I hope 'reverse_proxy' is set! > $base_root = "https"; > } > else { > // There's a proxy, but no HTTPS. > $base_root = "http"; > } > } > elseif (isset($_SERVER['HTTP_FRONT_END_HTTPS']) && $_SERVER['HTTP_FRONT_END_HTTPS'] == 'on') { > // The proxy follows the Microsoft convention for passing protocol > // information back to the web server per MS KB document Q307347. > $base_root = 'https'; > } > else { > // No signs of HTTPS, or the signs failed input validation. > $base_root = "http"; > } > } > else { > // There's no HTTPS spoor, or it's not allowed; we'll use HTTP. > $base_root = 'http'; > }