Discuz X2 TAG伪静态设置-实现Discuz7.2形式的伪静态

Discuz X2后台不能设置TAG的伪静态,为了实现伪静态需要自己修改,这个不能不说是Discuz开发者的疏忽。

根据以往的经验,由于TAG的聚合功能,在流量积累和内链方面的作用是非常大的,但是纵观Discuz的各版本,实现的都不好。做的最好的是Discuz 6.0 7.2 ,实现了TAG的 tag-tag名称.html形式的伪静态,但是到了x1.5竟然取消了TAG功能,到了X2虽然又加上了TAG,却不能在后台设置伪静态。好在X2代码方面改进很大,非常灵活,我们可以通过修改实现TAG的伪静态。

我是在升级美国主机侦探的时候遇到这个问题的,美国主机侦探论坛一直用的是6.0,所以为了URL保持一致,我下面说的方法是如何实现类似于Discuz6的伪静态的方法,其他形式的URL大家根据下面的方法只要改了对应的链接格式和Rewrite语句即可。

工作分两步,这也是大部分伪静态需要的步骤:

第一步,修改程序中的链接地址格式:

修改下面几个文件:

\template\default\tag\tag.htm中

将misc.php?mod=tag&id=$tag[tagid] 改为 tag-$tag[tagname].html

\template\default\tag\tagitem.htm中

将 misc.php?mod=tag&id=$id 改为 tag-$tag[tagname].html

 

\template\defaultforum\viewthread_node.htm中

找到:

<!–{if $tagi}–>, <!–{/if}–><a title="$var[1]" href="misc.php?mod=tag&id=$var[0]" target="_blank">$var[1]</a>

将 misc.php?mod=tag&id=$var[0] 改为 tag-$var[1].html

其他页面如果发现TAG地址是动态的,找到对应的模板文件做对应的修改即可,主要就是这几个文件。

第二步:设置伪静态的rewrite规则

这步是关键的一步,设置好伪静态规则,才能保证上面写的“假地址”可以访问的正确的内容。

我这里给出的是Apache虚拟主机环境下的Rewrite规则,放到.htaccess文件中即可(放在Discuz伪静态规则的下方):

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^tag-(.+)\.html$ misc.php?mod=tag&name=$1&%1

至此就设置完成了。

这里实现的URL形式是 tag-tag名称.html 另外也可以设置成 tag/tag名称  等各种形式 ,个人更喜欢后一种形式,不过为了保持URL的一致性,美国主机侦探论坛就只能用前者了

SEO一直是Discuz的软肋,目前的X2版本也有很多地方不利于SEO,后面有时间再写其他的。Discuz x2的一大进步就是实现更灵活,所以可以根据自己的情况做很多自定义的修改。还是希望官方能够将这些简单的,但是对运营却至关重要的功能内置到后台中,这样就不用每次都修改了。

Post Footer automatically generated by wp-posturl plugin for wordpress.

January 5th, 2012  in 网站程序, SEO 1 Comment »

One Response to “Discuz X2 TAG伪静态设置-实现Discuz7.2形式的伪静态”

Leave a Reply