为cos-html-cache插件增加页面(Page)、标签(Tag)和分类(Category)的静态化功能
WordPress的cos-html-cache插件为我们系统的静态化提供了非常好的解决方案,目前的版本是2.7.3。它可以将我们首页及文章(Post)进行静态化,使得访问速度大大提高,减少了服务器端的压力。不过对于页面、标签和分类,却似乎不太起作用,至少在我的服务器环境下(IIS7.0+FastCGI)是不行的。
为了能够实现它们,我分析了一下源代码,发现功能没有开启,但是可以实现的。具体修改方法及目的如下:
找到如下三行:
- if( substr_count($_SERVER[’REQUEST_URI’], ‘.htm’) || ( SCRIPT_URI == CosSiteHome) ){
- if( substr_count($_SERVER[’REQUEST_URI’], ‘../’)) $is_buffer = false;
- if( !substr_count($buffer, ‘<!–cos-html-cache-safe-tag–>’) ) return $buffer;
将他们分别做如下处理:
- 修改为:
if( strpos($_SERVER[’REQUEST_URI’], ‘page’)==1 || strpos($_SERVER[’REQUEST_URI’], ‘tag’)==1 || strpos($_SERVER[’REQUEST_URI’], ‘category’)==1 || substr_count($_SERVER[’REQUEST_URI’], ‘.htm’) || ( SCRIPT_URI == CosSiteHome) ){ - 在本行下增加:
if( substr_count($_SERVER[’REQUEST_URI’], ‘comment’)) $is_buffer = false; - 前面加上“//”注释掉本行
分别的原理及目的:
- 这个是在检测我们要静态化哪些文件,我为它增加了page、tag和category。当然,这个也和目录的模式有关,比如我的博客中,OpenSolaris的标签地址就是:http://priormind.com/blog/tag/opensolaris。所以我就找到以tag开头的目录并静态化它们
- 防止评论内容被静态化
- 作者写了个函数,将singlepost(也就是单页页面)、首页都加上了一个安全标签(<!–cos-html-cache-safe-tag–>)。有这个标签的话将不被静态化。而我们需要它们静态化,所以就把这行注释掉好了
本人仅仅是尝试性修改,不保证其完全正确性。有兴趣的话大家可以试试看,呵呵。也欢迎一起交流。
收藏了,可能会用到…
[Reply]