MovableType 4

本文讲述如何用Apache的mod_rewrite来美化你的Movable Type的tag搜寻地址。当然,这玩意儿很强大,这边只是用到它的九牛一毛的功力罢了。

这也不是第一次接触mod_rewrite,不过我没去记,每次要用的时候,都得小小地搜一下如何书写规则。这次也不例外,我只是某天在想要搜寻的路径很长,其实可以简化,看起来比较爽(这个词经常被我拿来当理由),于是就想起了可爱的mod_rewrite。

这边也不赘述,原本tag的搜寻地址是/cgi-bin/mt-search.cgi?tag=搜寻用的TAG名称&blog_id=1&IncludeBlogs=1

目标是显示为/tag/搜寻用的TAG名称

编辑网页目录下的.htaccess,加入以下代码:

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

如果您已经有了.htaccess并且已经加了其他的规则(一般用MT4发布的,已经是有了),就忽略掉上面的”RewriteEngine on”吧。

接下来您需要编辑MT后台的模板,让tag的连结们显示为简化后的网址。通常有两个模板需要编辑,一个是Widget模板中的标签云图,一个是文章中的所用到的模板模块,如果您使用的是默认模板,那么它们通常是Widget模板中的”Tag Cloud”,以及模板模块中的”Entry Summary”。

首先是Tag Cloud,初始模板如下:<li class="rank-<$mt:TagRank max="10"$>"><a href="javascript:void(0)" onclick="location.href='<$mt:TagSearchLink encode_js="1"$>';return false;" rel="tag"><$mt:TagName$></a></li>

将其中的href=”javascript:void(0)” onclick=”location.href='<$mt:TagSearchLink encode_js=”1″$>’;return false;”改为href=”<$MTBlogURL$>tag/<$MTTagName$>”

其次是Entry Summary,修改方式同上。搜寻的部分,我这里就略过了,因为我现在已经改用了Google的搜寻,可以在右侧栏靠上的位置看到我的Google站内搜寻。

参考:Use Apache’s mod_rewrite for beautiful MovableType URLs