diff options
author | Bart Visscher <bartv@thisnet.nl> | 2012-08-06 22:16:45 +0200 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2012-08-07 20:43:00 +0200 |
commit | 99ce7ba1df52334f11c6b97c3f24d0ed31c8f6d0 (patch) | |
tree | df8cd29a5e7673ae3db2148cf01286c28dc8a725 /lib/request.php | |
parent | c4f1a1de5b5f9dda969a3b3872eea5628d8ef9e2 (diff) | |
download | nextcloud-server-99ce7ba1df52334f11c6b97c3f24d0ed31c8f6d0.tar.gz nextcloud-server-99ce7ba1df52334f11c6b97c3f24d0ed31c8f6d0.zip |
Move serverHost and serverProtocol functions to OC_Request
Diffstat (limited to 'lib/request.php')
-rw-r--r-- | lib/request.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/request.php b/lib/request.php index 0b5aaf8ef30..cb93a088172 100644 --- a/lib/request.php +++ b/lib/request.php @@ -7,6 +7,51 @@ */ class OC_Request { + /** + * @brief Returns the server host + * @returns the server host + * + * Returns the server host, even if the website uses one or more + * reverse proxies + */ + public static function serverHost() { + if(OC::$CLI){ + return 'localhost'; + } + if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) { + if (strpos($_SERVER['HTTP_X_FORWARDED_HOST'], ",") !== false) { + $host = trim(array_pop(explode(",", $_SERVER['HTTP_X_FORWARDED_HOST']))); + } + else{ + $host=$_SERVER['HTTP_X_FORWARDED_HOST']; + } + } + else{ + $host = $_SERVER['HTTP_HOST']; + } + return $host; + } + + + /** + * @brief Returns the server protocol + * @returns the server protocol + * + * Returns the server protocol. It respects reverse proxy servers and load balancers + */ + public static function serverProtocol() { + if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) { + $proto = strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']); + }else{ + if(isset($_SERVER['HTTPS']) and !empty($_SERVER['HTTPS']) and ($_SERVER['HTTPS']!='off')) { + $proto = 'https'; + }else{ + $proto = 'http'; + } + } + return($proto); + } + static public function isNoCache() { if (!isset($_SERVER['HTTP_CACHE_CONTROL'])) { return false; |