环境配置:windows2003 + php5+apache2.2+mysql5httpd.conf修改:
打开
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so添加:
DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css lua
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-varyHeader append Vary User-Agent env=!dont-vary #对代理的设置
</Location>
运行后发现页面压缩了,但是js等并没有压缩
如在页面包含<script src="js.js"></js>
求解决方案
打开
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so添加:
DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css lua
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-varyHeader append Vary User-Agent env=!dont-vary #对代理的设置
</Location>
运行后发现页面压缩了,但是js等并没有压缩
如在页面包含<script src="js.js"></js>
求解决方案
添加一行
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript如果中间有代理,服务器响应头添加一行Vary:Accept-encoding具体怎么用,google吧理论上,它会根据浏览器的请求头看其是否支持压缩,发果支持,发送压缩后的,不支持,仍发原文。
后面都注释测试了的,没有作用。这些的代码仅仅只是兼容浏览器而已。
但是SetOutputFilter DEFLATE 这句话是不删的,删了连php页面都不能压缩了。
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE html htm xml php css js
</ifmodule>