From 76c94b6ba8a8e306f89f1ee908cb411374e4f2d8 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sun, 17 Jan 2010 07:30:41 -0500
Subject: [PATCH] - Fix 'force_https' to specified port when URL contains a port number (#1486411)

---
 CHANGELOG |    1 +
 index.php |    4 +++-
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 7a44f89..3983e24 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG RoundCube Webmail
 ===========================
 
+- Fix 'force_https' to specified port when URL contains a port number (#1486411)
 - Fix to-text converting of HTML entities inside b/strong/th/hX tags (#1486422)
 - Bug in spellchecker suggestions when server charset != UTF8 (#1486406)
 - Managesieve: Fix requires generation for multiple actions (#1486397)
diff --git a/index.php b/index.php
index e9b3676..a7dd0fe 100644
--- a/index.php
+++ b/index.php
@@ -67,7 +67,9 @@
 if (empty($_SESSION['user_id']) && ($force_https = $RCMAIL->config->get('force_https', false))) {
   $https_port = is_bool($force_https) ? 443 : $force_https;
   if (!rcube_https_check($https_port)) {
-    header('Location: https://' . $_SERVER['HTTP_HOST'] . ($https_port != 443 ? ':' . $https_port : '') . $_SERVER['REQUEST_URI']);
+    $host  = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
+    $host .= ($https_port != 443 ? ':' . $https_port : '');
+    header('Location: https://' . $host . $_SERVER['REQUEST_URI']);
     exit;
   }
 }

--
Gitblit v1.9.1