IIS下实现 Tag的静态化(ISAPI Rewrite实现)

MT的tag使用的是MT搜索功能实现的,所以要调用到mt-search.cgi这个文件,但是我们可以利用IIS下的ISAPI Rewrite来把这个静态话,对搜索引擎有一定的好处,但是还是调用mt-search.cgi这个文件,如果很多人访问,可能会造成很大的CPU消耗。

具体的办法是:

1、下载一个ISAPI_Rewrite,也可以从我这里下载。
      2、放到服务器上,把这个目录设为everyone可执行的权限,否则使用的过程中会出问题。

3、修改MT模板中的文件,一共要修改三处。第一处是Template Modules里面的Tags模板,把

<a href="<$MTTagSearchLink$>&amp;IncludeBlogs=<$MTBlogID$>" rel="tag">

改成

<a href="<$mt:BlogURL$>tag/<$MTTagName$>/" rel="tag" >

(根据自己在ISAPI_Rewrite里面设置的具体路径自己再做修改);第二处是Widgets里面的Tag Cloud文件和Search文件,也修改相应的链接地址。

具体的httpd.ini文件的内容如下:

[ISAPI_Rewrite]
    # 3600 = 1 hour
    CacheClockRate 3600
    RepeatLimit 32

    # Protect httpd.ini and httpd.parse.errors files
    # from accessing through HTTP
    RewriteRule /tag/(.*)/ /cgi-bin/mt-search\.cgi\?tag=$1&blog_id=1
    RewriteRule /tag/(.*)/ /cgi-bin/mt-search\.cgi\?tag=$1&IncludeBlogs=1

规则挺简单的,改一下就OK。这个规则的优化结果大家可以看看本博客上面的tag的样子。
updated:增加Apache下的rewrite规则

Apache下可以使用下面的代码,在.htaccess上增加即可:

RewriteEngine on
RewriteRule ^tag/(.*)/$ /cgi-bin/mt-search.cgi?tag=$1&blog_id=1&IncludeBlogs=1 [L,QSA]