diff options
Diffstat (limited to 'lib/response.php')
-rw-r--r-- | lib/response.php | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/response.php b/lib/response.php index c254ddd10e7..5f095a0affd 100644 --- a/lib/response.php +++ b/lib/response.php @@ -7,7 +7,9 @@ */ class OC_Response { + const STATUS_FOUND = 304; const STATUS_NOT_MODIFIED = 304; + const STATUS_TEMPORARY_REDIRECT = 307; static public function enableCaching() { header('Cache-Control: cache'); @@ -15,12 +17,29 @@ class OC_Response { } static public function setStatus($status) { + $protocol = $_SERVER['SERVER_PROTOCOL']; switch($status) { case self::STATUS_NOT_MODIFIED: $status = $status . ' Not Modified'; break; + case self::STATUS_TEMPORARY_REDIRECT: + if ($protocol == 'HTTP/1.1') { + $status = $status . ' Temporary Redirect'; + break; + } else { + $status = self::STATUS_FOUND; + // fallthrough + } + case self::STATUS_FOUND; + $status = $status . ' Found'; + break; } - header($_SERVER["SERVER_PROTOCOL"].' '.$status); + header($protocol.' '.$status); + } + + static public function redirect($location) { + self::setStatus(self::STATUS_TEMPORARY_REDIRECT); + header('Location: '.$location); } static public function setETagHeader($etag) { |