为了这Gzip我可没有少费功夫啊,之前我已经写过三篇文章《开启GZIP,提速Wordpress》、《给Wordpress开启Gzip功能》、《完美启用Gzip压缩JS、CSS》,三篇文章三个方法,各有特色,一直以来我是将这三个Gzip结合使用的,但是始终没有达到我期望的最佳效果,因为启用后就不得不放弃IE6的用户。这一bug让我在使用Gzip时很尴尬,之后我也试过给浏览器设置白名单,希望IE6跳过Gzip,最后以失败告终。不过今天终于让我找到一个可以兼顾IE6的开启Gzip的方法,让我的Wordpress载入速度又上了一个台阶。特地将此方法转载来和大家分享,因为原文是繁体,我就简化了一下:
1、下载gzip.zip,解压后上传至网站根目录。
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档,并将相应的.gz文件权限设置为777。
4、最后,再次改写.htaccess,把以下代码注释掉或删除。
完毕。此Gzip方法是至今我最满意的,效果最显著的,强烈推荐。不过在修改CSS和JS后,还要还原那句代码并重做第3、4步。所以该方法稍有些复杂,比较适合像我一样喜欢折腾Wordpress的童鞋们。
-
汇总 IE 在 CSS 中常见的 中 bug2010年01月29日 -
拿起武器,将 IE6 收归帐下2009年09月1日 -
合并JS文件两步走2009年06月13日 -
完美启用Gzip压缩JS、CSS2009年06月8日
貌似不行
现在wp3.3还适用吗?
Pingback: WordPress之终极Gzip兼容IE6 - 玉在河里
Pingback: WordPress之终极Gzip兼容IE6 - 玉在河里
搞了很多之后 最后用了CPANEL的压缩网站文件的功能
之前还不知道WP默认就有Gzip功能
貌似少了第0步:
在根目录建立wp-cache目录
要不然像我这样的新手会很惨的
老大,是不是要这么做?
建立了也没用
gz文件散落于各处
散落在各处是正常的,与相应文件保持同一目录
这些天按照万戈日志的方法优化了好多
今天最傻的是,下载了这篇日志里说的gzip.zip之后没有解压直接传到根目录里了
win主机?
我的空间不支持GZIP用什么办法可以打开GZIP,我用GZIPPY插件一用后台就打不开了,烦请告之,谢谢
看看你有没有用其他缓存插件,会冲突的
Pingback: 美化、优化博客 « 小居
说是终极,就先收藏了;等我先压缩率js,然后再启用gzip
用不到了我现在
用不到了我现在
这个确定到现在为止是完美的吗?
.gz有跑出來, 也改了權限不過在, http://gzip.zzbaike.com/ 上測試 是否压缩?還是否的狀態...是伺服器不支援麻
这个测试不准的,可以无视
原來如此 害我一直在找哪裡出了錯030
不過在 http://www.whatsmyip.org/http_compression/ 這裡試也一樣
无视这些测试网站
博主好呀!麻烦想请问一下!我是按照你所说来作业的,可是到第三步无法生成gz文件,并且在浏览器中,网页显示为没有加载CSS状态!
还有其他地方需要注意的吗??有点像叶子童鞋所说的情况!再有一点就是,我用了object-cache缓存,同时使用有影响吗??
没有影响,我两者也是同时使用法,你可以看一下gzip.php这个文件有没有放错位子
谢谢!我已用上,已经找到问题所在了!
关于那个777权限,貌似,好像,不必的样子!
用了之后再chrome下裸奔,经测试发现并未开启gzip
这个方法是我所知道的最完美的了,还不行就只能用插件咯
增加的内容已经删除,但是chrome下仍然不能加载css,求救!!
删除.htaccess后重建了下,回复了,谢谢!
还没测试,不过谢谢翻译。
用了这个,网页总是顿一顿才打开,好像好辛苦的样子
不会吧,gzip就是为了加速网站才开启的耶
不知道为什么,不用的话,就顺着打开。
用了的话,打开前会等一下,好像搞些什么的,然后后面就开始顺利。
开启gzip会给服务器造成一些压力,可能你所在的服务器承受不了吧
3、浏览自己的网站,让CSS和JS产生gz档,并将相应的.gz文件权限设置为777。
一个个找.gz文件? 好累啊 .........有统一设置的方法吗
可以用7zip把JS和CSS压缩成.gz文件再上传
Pingback: 几个提高wordpress博客速度的插件及办法 | 汇芷博客
感觉还是在面板里面开启最方便了~~~~
可不是所有的主机都支持的哟~
我的JS已经压缩过,现在就不使用Gzip了。。
gzip可以在压缩的基础上再压缩哟
每个步骤都没错,.gz也出来了,也改成777了,去复测还是说没压缩
第4步做了没?
我看了一下你的网站,是部分gzip,还有些gz文件没有生成
博主在没,做这些修改之前是不是要下个插件? 我昨天按这种方法设置了,直到今天还没产生解压的gz文件 主机支持.htaccess
要下载的不是插件,请看第一步
如果没有.gz文件可以用7zip手动生成
博主看到的话,望回复下,这个第2步 直接复制到.htaccess就可以了吗?
如果不是,应该怎么做,期待....
恩,是的,但是记得生成.gz文件后要做第4步
哈哈,关于Gzip的方法,我可没少折腾啊,前前后后收集了四种gzip方法~
貌似比较麻烦啊
麻烦是麻烦了一些,但是绝对是最好的gzip方法了
确实比前几个要复杂,我得慢慢消化,又晕了
呵呵,其实不难的,.gz的文件可以用7-zip小工具来压缩
这个看起来蛮好,应用范围也拓展至IE6了。IE6以上级别浏览器均可使用
恩,我现在用的就是这个方法,很不错的
残啊...最近又要续费了.
看来还是移架再选个主机.
不知道会不会让搜索引擎惩罚.
不会吧,现在免费主机也都支持.htaccess可见了。。。
搬家是很正常的事,搜索引擎没有这么不人性化的(百毒除外)
就是,搬家呗,非要用那么名牌的主机啊?
“3、浏览自己的网站,让CSS和JS产生gz档,并将相应的.gz文件权限设置为777。”
这个在哪?
难道要找到所有的js.gz和css.gz修改属性?
不用的,这个地方我没修改过来,其实只要用7-zip把JS和CSS文件用gzip模式压缩一下就行,不需要设置777了
你的意思是不是说,走完“浏览自己的网站,让CSS和JS产生gz档”这一部之后,直接走下一步就好了?
我浏览了一下网站,进到文件管理器发现生成了很多js.gz和css.gz文件了
生成.gz压缩文件就说明对了,这就是gzip后的效果,读取的就是这些.gz文件
第四步注释掉代码之后,我去http://www.gidnetwork.com/tools/gzip-test.php检测,结果是:Web page compressed? No
你还是加我QQ聊吧:101149488
使用这个办法后。所有插件JS/CSS目录都设置成可写,并生成了压缩文件。现在等待看效果。。
Pingback: 对Wordpress/WPMU进行SEO和性能优化 | 季节不曾为我赶路SorryDreams的Blog
Pingback: 优化你的 WordPress 之压缩 CSS/JS 代码(进阶篇补充) - Showfom's Blog
手里吃着东西呢,单手给你说俩字
一共十四个字...
貌似市面上所有浏览器都支持Gzip吧
Pingback: Wordpress 之終極 Gzip 兼容 IE6 - Willin Kan 的博客
這篇我要轉載囉!
尽情地转吧,我也是转来的
這個做法就正確了! IE 也正常了!
上次的, 每刷新一次就新產生 gzip, 我還在納悶, 想自己改寫咧...
原來有人已經寫好了, 拿現成就好啦, 謝謝!
萬兄鍥而不舍的精神的確令人欽佩!
现在的gzip总算是完美了,嘿嘿
没错,那种gzip方法反而会给服务器造成一些小负担
wp的功能还真的强呢!~
不只 wp, 只要網頁有 js 和 css 都可用.
到底怎么回事 又是我沙发?
我才写完不到五分钟耶,你是不是在我的网站蹲点守候的呀?
给我妈下电影 我要睡觉了 88
呃……怎么像和你在即时聊天了,呵呵,88
博主,很喜欢你的文章。
兼容IE6也可以检测浏览器,如果是ie6就不压缩
如果支持gzip就起用压缩,也可以的吧?
用这个gzip方法,是不能通过浏览器的判断来区分IE6的哟
呵呵,我刚才正在弄。现在可以了,用这种方法,好像已经可以实现了。
$gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip');
$deflate = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate');
$encoding = $gzip ? 'gzip' : ($deflate ? 'deflate' : 'none');
判断encoding 的方法来实现,ie6不支持,就直接读样式