网站用了cos-html-cache来静态化,所以不光想压缩css和js,连带html文件也想一块儿压缩了。原来一直用 阅微堂的方法在.htaccess里写一个规则来压缩网站的html,css和js,后来由于网站重建,同样的代码首页不能压缩了,即网站首页http://xxx/后面没有html后缀,所以无法压缩,只有http://xxx/index.html才可以正常压缩html.
所以用了一个新的方法,原来cos-html-cache好像不支持动态压缩,反正这个方法静态动态都可以正常使用,而且不和cos-html-cache冲突。
首先,在.htaccess添加以下语句:
AddHandler application/x-httpd-php .css .html .js #添加应用类型 php_value auto_prepend_file "/home/littlewi/public_html/blog/pre.php" #相当于在每个文件前面运行pre.php,注意这里一定要填空间里的绝对地址, 不要填相对地址,我这个是cp免费空间,home是根目录,littlewi是我的用户名, 网站文件在public_html,blog装在blog目录 php_value zlib.output_compression 2048 #zlib在默认从4K开始压缩, 设成压缩到2k就开始传输
然后新建pre.php,内容如下:
<?php #这段代码输出的是mediatype header $pathinfo = pathinfo($_SERVER[PHP_SELF]); $extension = $pathinfo['extension']; switch ($extension) { case "css" : header("Content-type: text/css"); break; case "html" : header("Content-type: text/html"); break; case "js" : header("Content-type: text/javascript"); break; default : break; } ?>
这样所有php,html,js,css都可以压缩传输,而且和cos-html-cache也不冲突。