PluginProbe
Autoptimize / 2.2.1
Autoptimize v2.2.1
2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 All 107 releases
autoptimize / config / default.php

default.php in Autoptimize 2.2.1, at config/default.php

65 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php exit;
2
3 //Check everything exists before using it
4 if(!isset($_SERVER['HTTP_ACCEPT_ENCODING']))
5 $_SERVER['HTTP_ACCEPT_ENCODING'] = '';
6 if(!isset($_SERVER['HTTP_USER_AGENT']))
7 $_SERVER['HTTP_USER_AGENT'] = '';
8
9 // Determine supported compression method
10 $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip');
11 $deflate = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate');
12
13 // Determine used compression method
14 $encoding = $gzip ? 'gzip' : ($deflate ? 'deflate' : 'none');
15
16 // Check for buggy versions of Internet Explorer
17 if (!strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') &&
18 preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches))
19 {
20 $version = floatval($matches[1]);
21
22 if ($version < 6)
23 $encoding = 'none';
24
25 if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1'))
26 $encoding = 'none';
27 }
28
29 //Some servers compress the output of PHP - Don't break in those cases
30 if(ini_get('output_handler') == 'ob_gzhandler' || ini_get('zlib.output_compression') == 1)
31 $encoding = 'none';
32
33 //Get data
34 $contents = file_get_contents(__FILE__.'.'.$encoding);
35
36 // first check if we have to send 304
37 $eTag=md5($contents);
38 $modTime=filemtime(__FILE__.'.none');
39
40 $eTagMatch = (isset($_SERVER['HTTP_IF_NONE_MATCH']) && strpos($_SERVER['HTTP_IF_NONE_MATCH'],$eTag));
41 $modTimeMatch = (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) === $modTime);
42
43 if (($modTimeMatch)||($eTagMatch)) {
44 header('HTTP/1.1 304 Not Modified');
45 header('Connection: close');
46 } else {
47 // send all sorts of headers
48 $expireTime=60*60*24*356; // 1y max according to RFC
49
50 if(isset($encoding) && $encoding != 'none')
51 {
52 header('Content-Encoding: '.$encoding);
53 }
54 header('Vary: Accept-Encoding');
55 header('Content-Length: '.strlen($contents));
56 header('Content-type: %%CONTENT%%; charset=utf-8');
57 header('Cache-Control: max-age='.$expireTime.', public, immutable');
58 header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT'); //10 years
59 header('ETag: ' . $eTag);
60 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modTime).' GMT');
61
62 // send output
63 echo $contents;
64 }
65