再谈gzip压缩静态html,css和js

网站用了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也不冲突。

Leave a Reply

Your email address will not be published. Required fields are marked *