Discuz教程网

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

[复制链接]
authicon dly 发表于 2012-1-6 13:11:46 | 显示全部楼层 |阅读模式
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的一大进步就是实现更灵活,所以可以根据自己的情况做很多自定义的修改。还是希望官方能够将这些简单的,但是对运营却至关重要的功能内置到后台中,这样就不用每次都修改了。



上一篇:Xweibo v2.2 beta版闪亮登场
下一篇:求助 帮忙解决导航权限设置问题 谢谢
authicon 三文鱼 发表于 2012-1-13 11:13:33 | 显示全部楼层
我去试试 谢谢!
authicon 偲淰湜伤 发表于 2012-1-13 23:33:38 | 显示全部楼层
嗯~!应该有用吧~!回头试试~!
authicon 偲淰湜伤 发表于 2012-1-13 23:34:07 | 显示全部楼层
嗯~!应该有用吧~!回头试试~!
authicon zongdongyang 发表于 2012-1-16 16:19:56 | 显示全部楼层
楼主能帮忙编写一个nginx下的伪静态规则吗?
authicon alvintony 发表于 2012-1-29 17:16:05 | 显示全部楼层
我是在iis下的 改了后中文读出来是乱码啊
authicon 小桥 发表于 2012-1-30 11:36:51 | 显示全部楼层
学习一下,感谢提供哈
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-5-19 07:09

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表