|
|
@@ -7,6 +7,15 @@ |
|
|
|
*/ |
|
|
|
|
|
|
|
class OC_Request { |
|
|
|
/** |
|
|
|
* @brief Check overwrite condition |
|
|
|
* @returns true/false |
|
|
|
*/ |
|
|
|
private static function isOverwriteCondition() { |
|
|
|
$regex = '/' . OC_Config::getValue('overwritecondaddr', '') . '/'; |
|
|
|
return $regex === '//' or preg_match($regex, $_SERVER['REMOTE_ADDR']) === 1; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @brief Returns the server host |
|
|
|
* @returns the server host |
|
|
@@ -18,7 +27,7 @@ class OC_Request { |
|
|
|
if(OC::$CLI) { |
|
|
|
return 'localhost'; |
|
|
|
} |
|
|
|
if(OC_Config::getValue('overwritehost', '')<>'') { |
|
|
|
if(OC_Config::getValue('overwritehost', '')<>'' and self::isOverwriteCondition()) { |
|
|
|
return OC_Config::getValue('overwritehost'); |
|
|
|
} |
|
|
|
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { |
|
|
@@ -43,7 +52,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', '')<>'') { |
|
|
|
if(OC_Config::getValue('overwriteprotocol', '')<>'' and self::isOverwriteCondition()) { |
|
|
|
return OC_Config::getValue('overwriteprotocol'); |
|
|
|
} |
|
|
|
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) { |
|
|
@@ -67,7 +76,7 @@ class OC_Request { |
|
|
|
*/ |
|
|
|
public static function requestUri() { |
|
|
|
$uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; |
|
|
|
if (OC_Config::getValue('overwritewebroot', '') <> '') { |
|
|
|
if (OC_Config::getValue('overwritewebroot', '') <> '' and self::isOverwriteCondition()) { |
|
|
|
$uri = self::scriptName() . substr($uri, strlen($_SERVER['SCRIPT_NAME'])); |
|
|
|
} |
|
|
|
return $uri; |
|
|
@@ -82,7 +91,7 @@ class OC_Request { |
|
|
|
*/ |
|
|
|
public static function scriptName() { |
|
|
|
$name = $_SERVER['SCRIPT_NAME']; |
|
|
|
if (OC_Config::getValue('overwritewebroot', '') <> '') { |
|
|
|
if (OC_Config::getValue('overwritewebroot', '') <> '' and self::isOverwriteCondition()) { |
|
|
|
$serverroot = str_replace("\\", '/', substr(__DIR__, 0, -4)); |
|
|
|
$suburi = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen($serverroot))); |
|
|
|
$name = OC_Config::getValue('overwritewebroot', '') . $suburi; |