php技术博客
让天下没有搞不定的bug~

如何网页加载速度之修改 .htaccess 文件

      近日,看到一篇不错的文章,于是转到博客上,虽然还未使用nginx,但记录下来也有好处。  一直以来,在我的疯狂优化提速下,我的 WordPress 的 YSlow 评分始终保持在 Grade A,几乎接近完美。不过使用的只是 Small Site or Blog 规则,若是用 Yslow(V2) 规则,小站就只能得个 Grade C,差距为何会如此之大呢?小站倒底有哪些条款没做到 Yslow(V2) 的要求呢?又如何加以改正使之进一步提速呢?

   用 Yslow(V2) 规则评测本站,可以发现几个明显的失分点:

    Use a Content Delivery Network (CDN)
    Add Expires headers
    Compress components with gzip
    Configure entity tags (ETags)

这四项除了第三项我得了 C 其它项我都得了 F ,这总分 Grade C 也就是被这四项害的。下面一一分析下这四个最容易失分的要点并给出相应的优化方案。

1、Use a Content Delivery Network (CDN)

这个看上去好像很深奥的样子,但是只要结合中国的网络特色,这个便不难理解了。“北方服务器”、“南方服务器”、“电信服务器”、“网通服务器”……这些词听起来是那么的熟悉。如果,一个北京的电信用户试图从广东的网通服务器上打开一个网页时,你就能很深刻的理解。鉴于这个不是我们开发人员力所能及的准则,所以这里也就不多言了,放弃该项优化。
2、Add Expires headers

简单点说:就是缓存一下不常修改的文件,提升访问速度。也就是在 .htaccess 文件中写入以下内容:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A600
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A604800
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/plain A86400
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType video/x-flv A2592000
ExpiresByType application/pdf A2592000
ExpiresByType text/html A600
</IfModule>
text/css 之类代表文件类型,A2592000 表示在浏览器中的缓存时间,2592000 秒 = 30 天。

3、Compress components with gzip

Gzip 压缩是减少文件体积增加用户体验的简单方法,同样,添加以下代码到 .htaccess 文件即可。
<IfModule mod_deflate.c>
AddOutputFilter DEFLATE html xml php js css
</IfModule>

4、Configure entity tags (ETags)

ETags 是服务器和浏览器的一个功能,我也不是很懂这些,总之,结论就是:如果你没有使用 ETags 提供的灵活的验证模式,那么干脆把所有的 ETags 都关掉。方法很简单,只要添加以下代码到 .htaccess 文件即可:

FileETag none

   

      说了半天,要注意的是如果你需要优化这些内容,前提是你所在的虚拟主机必须支持 .htaccess 伪静态,否则你再怎么争扎也没有用。很幸运我的虚拟主机就支持该伪静态。所以经过这些优化后,我的总成绩也从 Grade C 上升到了 Grade B,有点小成绩,心里也宽慰一些。向 Yslow 之 Grade A 继续迈进!

    技术分享,技术交流,小涛与您共同成长……

赞(0)
未经允许不得转载:PHP技术博客 » 如何网页加载速度之修改 .htaccess 文件

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #3

    额 现在都C了 回头去关注下 .htaccess 伪静态 看看是否支持

    天外飞仙10年前 (2012-04-10)回复
  2. #2

    太高深了。

    TJL10年前 (2012-03-08)回复
  3. #1

    额..真心看不懂,神马A啊B啊C啊的。。 😥

    mark10年前 (2012-03-08)回复
    • 哈哈 百度一下雅虎的yslow吧!

      zone10年前 (2012-03-08)回复