首页 > BLOG建设 > cos-html-cache在IIS下不能使用的原因

cos-html-cache在IIS下不能使用的原因

2009年5月7日 发表评论 阅读评论

  本站所在的服务器目前是WIN2003+IIS6.0,一直想做页面的静态化,尝试了wp-super-cache和cos-html-cache等静态化插件都不行。他们的说明文档中似乎都没有提到在IIS下的使用,通过搜索发现这些插件多是针对APACHE设计的。
  通过分析cos-html-cache的代码发现一个导致IIS下无法使用的重要原因:
在Version: 2.7.3中的第102行

if( substr_count($_SERVER['REQUEST_URI'], '.htm') || ( SCRIPT_URI == CosSiteHome) )

这里判断URL是否符合要求。问题就出在这里,在IIS下使用URLRewrite后$_SERVER['REQUEST_URI']获得的将是页面的动态地址。
如:
当URLRewrite配置成
RewriteRule /html/(.+)\.html /index.php?p=$1
那么在访问/html/123.html时实际上是访问的/index.php?p=123.
而在IIS下$_SERVER['REQUEST_URI']获得的URI是/index.php?p=123,显然不符合要求,后面的创建静态页面的代码也就不会执行了。
问题找到了,如果能想办法获得复写后的URL,那么就可以正常使用cos-html-cache插件实现静态化。如何获得呢??

分类: BLOG建设 标签: ,
  1. 2010年9月12日16:53 | #1

    我也发现这个问题了,在IIS下把rewrite全搞定之后,居然发现访问的时候居然没有过生成文件,全是访问的PHP。

    不过从后台删除静态文件后,访问页面地址还是会生成的。所以可以判断COS-html-cache是能够得到这个地址的哦~

  2. 2010年9月26日21:16 | #2

    可能是版本不同或者URL重写的插件的原因,测试的时候确实无法获取到想要的URL

点击刷新