diff options
Diffstat (limited to 'js/index.php')
-rw-r--r-- | js/index.php | 66 |
1 files changed, 8 insertions, 58 deletions
diff --git a/js/index.php b/js/index.php index afba718085..60786f2849 100644 --- a/js/index.php +++ b/js/index.php @@ -7,64 +7,18 @@ * @version $Id$ */ -if(!empty($_SERVER['QUERY_STRING'])) { - include '../piwik.php'; - exit; -} - -$file = '../piwik.js'; +$file = "../piwik.js"; -if (file_exists($file) && function_exists('readfile')) { - // conditional GET +/* + * Conditional GET + */ +if (file_exists($file)) { $modifiedSince = ''; if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { $modifiedSince = $_SERVER['HTTP_IF_MODIFIED_SINCE']; } $lastModified = gmdate('D, d M Y H:i:s', filemtime($file)) . ' GMT'; - // optional compression - $compressed = false; - $encoding = ''; - if (isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { - $acceptEncoding = $_SERVER['HTTP_ACCEPT_ENCODING']; - if (extension_loaded('zlib') && function_exists('file_get_contents') && function_exists('file_put_contents')) { - if (preg_match('/(?:^|, ?)(deflate)(?:,|$)/', $acceptEncoding, $matches)) { - $encoding = 'deflate'; - $filegz = '../piwik.js.deflate'; - } else if (preg_match('/(?:^|, ?)((x-)?gzip)(?:,|$)/', $acceptEncoding, $matches)) { - $encoding = $matches[1]; - $filegz = '../piwik.js.gz'; - } - - if (!empty($encoding)) { - // compress-on-demand and use cache - if(!file_exists($filegz) || (filemtime($file) > filemtime($filegz))) { - $data = file_get_contents($file); - - if ($encoding == 'deflate') { - $data = gzcompress($data, 9); - } else if ($encoding == 'gzip' || $encoding == 'x-gzip') { - $data = gzencode($data, 9); - } - - file_put_contents($filegz, $data); - $file = $filegz; - } - - $compressed = true; - $file = $filegz; - } - } else { - // manually compressed - $filegz = '../piwik.js.gz'; - if (preg_match('/(?:^|, ?)((x-)?gzip)(?:,|$)/', $acceptEncoding, $matches) && file_exists($filegz) && (filemtime($file) < filemtime($filegz))) { - $encoding = $matches[1]; - $compressed = true; - $file = $filegz; - } - } - } - // strip any trailing data appended to header if (false !== ($semicolon = strpos($modifiedSince, ';'))) { $modifiedSince = substr($modifiedSince, 0, $semicolon); @@ -75,17 +29,13 @@ if (file_exists($file) && function_exists('readfile')) { } else { header('Last-Modified: ' . $lastModified); header('Content-Length: ' . filesize($file)); - header('Content-Type: application/javascript; charset=UTF-8'); - - if ($compressed) { - header('Content-Encoding: ' . $encoding); - } + header('Content-Type: application/x-javascript'); if (!readfile($file)) { - header ('HTTP/1.0 505 Internal server error'); + header ("HTTP/1.0 505 Internal server error"); } } } else { - header ('HTTP/1.0 404 Not Found'); + header ("HTTP/1.0 404 Not Found"); } exit; |