summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorherbrechtsmeier <stefan@herbrechtsmeier.net>2013-02-23 12:58:06 +0100
committerherbrechtsmeier <stefan@herbrechtsmeier.net>2013-03-09 11:00:53 +0100
commitd4f98923b9be7f3e6805573085bf9fedfaff836c (patch)
tree5a9a1e615ecfc83b332cf8d8ebfe83334eb7d689
parent0629ff4dd91b488bd98c35eeff24c5fea50fc30d (diff)
downloadnextcloud-server-d4f98923b9be7f3e6805573085bf9fedfaff836c.tar.gz
nextcloud-server-d4f98923b9be7f3e6805573085bf9fedfaff836c.zip
Overwrite host and webroot when forcessl is enabled
This patch enables the use of forcessl together with a multiple domains reverse SSL proxy (owncloud/core#1099) which have different hostname and webroot for http and https access. The code assumes that the ssl proxy (https) hostname and webroot is configured via overwritehost and overwritewebroot.
-rwxr-xr-xlib/request.php7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/request.php b/lib/request.php
index 9f74cf9beb5..859276a12a3 100755
--- a/lib/request.php
+++ b/lib/request.php
@@ -11,9 +11,10 @@ class OC_Request {
* @brief Check overwrite condition
* @returns true/false
*/
- private static function isOverwriteCondition() {
+ private static function isOverwriteCondition($type = '') {
$regex = '/' . OC_Config::getValue('overwritecondaddr', '') . '/';
- return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1;
+ return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1
+ or ($type <> 'protocol' and OC_Config::getValue('forcessl', false));
}
/**
@@ -52,7 +53,7 @@ class OC_Request {
* Returns the server protocol. It respects reverse proxy servers and load balancers
*/
public static function serverProtocol() {
- if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition()) {
+ if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition('protocol')) {
return OC_Config::getValue('overwriteprotocol');
}
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {