htaccess方式启用gzip压缩CSS和JS

压缩WordPress网页gzip插件有很多,前面一篇文章的GZippy就可以,压缩CSS和JS成为gzip的插件也是有的,不过下面提供一种htaccess静态手工压缩的办法,有些麻烦但超级高效,而且兼容性好,不限于WordPress网站。

1.下载Gzip.rar文件,解压后将Gzip.php文件上传到网站的根目录下,也就是/public_html/文件夹中。

2.修改网站的.htaccess文件,在其中增添如下语句:

#辨识gz档案的支持
<Files *.js.gz>
AddEncoding gzip .js
ForceType application/x-javascript
</Files>
<Files *.css.gz>
AddEncoding gzip .css
ForceType text/css
</Files>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#wordpress静态网址的支持,如果你设置的话会有如下三行
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

#读到css和js,就重导至gzip.php
RewriteRule (.*.css$|.*.js$) gzip.php?$1 [L]

#读到.css,判断如果浏览器支持gzip且.css.gz存在,就进行重导
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*).css $1.css.gz [L,QSA]

#读到.js,判断如果浏览器支持gzip且.js.gz存在,就进行重导
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*).js $1.js.gz [L,QSA]
</IfModule>

3.浏览自己的网站,让CSS和JS产生gz档;注意,如果你发现浏 览过后,CSS和JS文件没有产生gz文件,请注意把CSS和JS所在文件夹的上层文件夹属性修改为777

4.最后,再次改写.htaccess,把以下代码注释掉或删除。

RewriteRule (.*.css$|.*.js$) gzip.php?$1 [L]

注意:如果以后要修改CSS和JS,那还要还原那句代码并重做第3、4步。

方法有些麻烦,不过效果很好。

下面是几个测试网站是否启用gzip压缩的网址:
http://tool.chinaz.com/Gzips/Default.aspx

http://gzip.zzbaike.com/

http://www.websiteoptimization.com/services/analyze/