4个完美开启网站Gzip压缩的方法

WordPress 12462 Views 0 Comments

还记得之前本博客有篇文章介绍WordPress优化设置浏览器端缓存:Leverage browser caching 中有提到开启浏览器缓存来优化Wordpress的方法,文章最后有提到在Google Page Speed检测中提示博客未开启Gzip压缩功能,如图:

luckerme_Page Speed score
当时开启浏览器缓存 之后的评分为82分,不知道开启压缩之后的评分会是多少呢?一直拖到现在才开始找完美开启Gzip压缩的方法。在这一点上也反映出了我在时间管理上的缺陷和缺点,以后希望能改改。收集的4个完美开启网站Gzip压缩的方法如下:

方法1.使用Wordpress插件Gzippy

WordPress插件Gzippy,很方便的开启Gzip压缩功能,安装之后启用即可,无需设置,很方便.
下载地址:http://wordpress.org/extend/plugins/gzippy/

方法2.使用自定义的php.ini和.htaccess文件

a. 新建一个文本文件,重命名为 php.ini ,输入以下内容,保存并上传至网站根目录即可。

output_buffering = Off
output_handler =
zlib.output_compression = On
zlib.output_compression_level = 6

b.网站根目录下的.htaccess文件内加入以下代码(独占一行):

addhandler x-httpd-php5-cgi .php .html .htm .js

方法3.修改代码压缩CSS和JS文件

a.压缩CSS文件

1、把模板目录下的style.css复制一份出来,命名为style.css.php,接着在style.css.php顶部加入这句:

< ?php if(extension_loaded('zlib')) {ob_start('ob_gzhandler');} header("Content-type: text/css"); ?>

在最后加上下面代码

< ?php if(extension_loaded('zlib')) {ob_end_flush();} ?>

2、然后修改header.php中的引用CSS文件的路径:
原来的:

<link rel="stylesheet" type="text/css" media="screen" href="/style.css"/>

修改后的:

<link rel="stylesheet" type="text/css" media="screen" href="/style.css.php"/>

这样,你的CSS就被Gzip压缩了。
b. 同样的方法可以压缩你的JS. 只是在JS的顶部加入的是如下代码

< ?php if ( extension_loaded('zlib') ) {ob_start('ob_gzhandler');} header("Content-Type: text/javascript"); ?>

加入到JS文件最后的代码和CSS文件的一样. 之后再修改主题文件中引用JS文件的路径文件名即可.

提示: 此方法较复杂,不推荐初级用户使用. 切忌在修改的时候要把原来的文件备份一下。省的出现悲剧就晚了。

以上三种开启Gzip压缩的方法,网上传的比较多,但是有一点,都不兼容IE6,下边在分享一种兼容IE6的压缩方法:

方法4.通过.htaccess终极启用方法(推荐此方法)

1、下载对应的Gzip.zip文件,解压后上传至网站根目录。

2、修改根目录的.htaccess,加入以下代码,增加gz的识别支援及网址改写:

#识别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文件存在,就重定向到压缩的CSS文件
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*).css $1.css.gz [L,QSA]
#读到.js,判断如果浏览器支持Gzip且.js.gz文件存在,就重定向到压缩的JS文件
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*).js $1.js.gz [L,QSA]
</IfModule>

3、浏览自己的网站,让CSS和JS产生gz档,并将相应的.gz文件权限设置为777。

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

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

完毕。此Gzip方法是至今我最满意的,效果最显著的,强烈推荐。不过在修改CSS和JS后,还要还原那句代码并重做第3、4步。所以该方法稍有些复杂,比较适合喜欢折腾Wordpress的童鞋们。

目前网上流传的这4个完美开启网站Gzip压缩的方法,收集于此,根据网站空间的功能可能不是每种方法都支持,具体可以尝试不同的方法找到适合自己的。

参考来源:
http://wange.im/turn-on-gzip-for-wordpress.html
http://wange.im/the-best-gzip-for-wordpress.html
http://www.wanfish.com/archives/139.html

搜索以下内容到本文:

  • gzippy
  • 网站压缩
  • 网页GZIP压缩
  • htaccess

转载请注明:珹觅.网志 | LuckerMe » 4个完美开启网站Gzip压缩的方法

您必须 登录 才能发表评论!

网友最新评论 (2)

  1. iis空间,用是php.ini吗?

  2. 呵呵,非常感谢,很好很强大

    茹雪2015-12-10 23:12