优化wordpress缓存

通过利用.htaccess可以很方便的控制浏览器的缓存,从而达到提高访问体验。一般用到的都是两个模块mod_headers或mod_expires。不知到这两个哪个效率高,也没人比一下,我觉得mod_header,用起来比较方便,而且功能也多。使用的时候,你需要知道Last-Modified,expire,etag,Cache-Control大概都是什么意思,这个网上很多很好搜。

方法主要参考的是这篇文章,both mod_expires 和mod_headers两种方法它都提供了很详细的例子。我们可以参考这些例子,根据自己的空间的具体情况来设置。

我的设置是用mod_headers,因为mod_header能做mod_expires可以做的,感觉没必要用两个。首先是html和php页面的缓存,这类页面需要动态效果,要不然更新或者留言了,在文件过期前浏览器不会更新,而是从缓存里读取旧的页面。一般apath都会为html文件自动加上Last-Modified和etag,所以我们通过设置Cache-Control,来达到服务端的html文件更新了,浏览器才下载。代码如下:

#确定文件类型
<FilesMatch ".(html|php)$">
 Header set Cache-Control "max-age=0, private, no-cache, must-revalidate"
 ExpiresActive Off#html设置有expire的需要关掉,否则ie6下首页可能不实时更新
</FilesMatch>
#这样每次当浏览器访问页面时,会首先确定页面是否有更新,更新了才下载

其次就是其他文件类型,如图片,css,js之类,我把他们都放在一起了,反正如果我改css了就换个css文件名,代码如下:

<FilesMatch ".(ico|jpg|jpeg|png|gif|js|css)$">
Header unset Last-Modified #这类文件取消last-modified,节省资源
FileETag None#取消etag
Header set Cache-Control "max-age=2592000"
Header set Expires "Thu, 01 Dec 2013 16:00:00 GMT"
</FilesMatch>

用mod_headers来设置缓存很方便,也很灵活,关于缓存更全面的介绍和设置,请参看这篇文章,很全。

如何知道自己的设置是否成功了呢,可以用firefox的firebug插件,在网络选项里,每个文件的头信息都很详细。

Leave a Reply

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