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.
This commit is contained in:
parent
0629ff4dd9
commit
d4f98923b9
|
@ -11,9 +11,10 @@ class OC_Request {
|
||||||
* @brief Check overwrite condition
|
* @brief Check overwrite condition
|
||||||
* @returns true/false
|
* @returns true/false
|
||||||
*/
|
*/
|
||||||
private static function isOverwriteCondition() {
|
private static function isOverwriteCondition($type = '') {
|
||||||
$regex = '/' . OC_Config::getValue('overwritecondaddr', '') . '/';
|
$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
|
* Returns the server protocol. It respects reverse proxy servers and load balancers
|
||||||
*/
|
*/
|
||||||
public static function serverProtocol() {
|
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');
|
return OC_Config::getValue('overwriteprotocol');
|
||||||
}
|
}
|
||||||
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
|
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
|
||||||
|
|
Loading…
Reference in New Issue