From fbf2b5f1a5016c8ecfa27d474d4c22ffd22919f9 Mon Sep 17 00:00:00 2001 From: Zertrin Date: Mon, 28 Apr 2014 23:02:46 +0200 Subject: [PATCH] Detect if HTTPS is used and adapt all links accordingly Signed-off-by: Jerome Jutteau --- lib/functions.php | 12 ++++++++++++ lib/template/header.php | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/functions.php b/lib/functions.php index bc119a3..f1f8965 100755 --- a/lib/functions.php +++ b/lib/functions.php @@ -90,6 +90,18 @@ jirafeau_gen_random ($l) return $code; } +function is_ssl() { + if ( isset($_SERVER['HTTPS']) ) { + if ( 'on' == strtolower($_SERVER['HTTPS']) ) + return true; + if ( '1' == $_SERVER['HTTPS'] ) + return true; + } elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) { + return true; + } + return false; +} + function jirafeau_human_size ($octets) { diff --git a/lib/template/header.php b/lib/template/header.php index 264cf34..5926555 100644 --- a/lib/template/header.php +++ b/lib/template/header.php @@ -8,9 +8,15 @@ if (stristr ($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml')) header('Content-Type: ' . $content_type); +$protocol = (bool)is_ssl() ? 'https' : 'http'; + +if ( !empty($cfg['web_root']) ) { + $cfg['web_root'] = preg_replace('#https?://#', $protocol . '://', $cfg['web_root'], 1); +} + /* Avoids irritating errors with the installer (no conf file is present then). */ if (!isset ($cfg['web_root'])) - $web_root = 'http://' . $_SERVER['HTTP_HOST'] . '/'; + $web_root = $protocol+'://' . $_SERVER['HTTP_HOST'] . '/'; else $web_root = $cfg['web_root']; -- 2.34.1