电脑计算机论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1763|回复: 0

Discuz伪静态URL重复问题的解决方法

[复制链接]
admin 发表于 2010-8-17 14:52:18 | 显示全部楼层 |阅读模式
例如这个地址:http://bbs.idcspy.com/thread-9309-1-1.html ,第一个数字9309代表帖子的id,第二个数字1代表这个主题的第一页,第三个数字1代表这个主题在这个版的第一页。但是随着帖子的增加,这个帖子会跑到第二页,第三页。。。。然后最后这个数字就会不断变化。也就是说Discuz的url在不断变化.Discuz虽然设置了如果是蜘蛛抓取,最后一位返回是1,但是还是不能从根本上解决问题。它只解决了搜索引擎直接到你的网站抓取的网页地址是单一的,但是如果别的网站引用你的帖子地址,还是会出现URL地址重复的问题。
我们这里给出的解决方案是直接修改Discuz控制伪静态地址的函数,最后一个数字始终输出为1,这样可以保证rewrite之后的地址是单一的,但是缺点是URL不能给discuz正确传递参数,所以如果返回版面的时候只能返回到改版的首页而不能返回到该帖所在的页面。

解决方法:
修改Rewrite的格式,最后一个数字统一用1代替。解决url变化和重复的问题
修改文件include/global.func.php的:
  • function rewrite_thread($tid, $page = 0, $prevpage = 0, $extra = '') {
  •         return '<a href="thread-'.$tid.'-'.($page ? $page : 1).'-'.($prevpage && !IS_ROBOT ? $prevpage : 1).'.html"'.stripslashes($extra).'>';
  • }

复制代码

改为:
  • function rewrite_thread($tid, $page = 0, $prevpage = 0, $extra = '') {
  •         return '<a href="thread-'.$tid.'-'.($page ? $page : 1).'-'.'1'.'.html"'.stripslashes($extra).'>';
  • }

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则


QQ|手机版|小黑屋|电脑计算机论坛 ( 京ICP备2022023538号-1 )

GMT+8, 2024-5-7 16:44 , Processed in 0.079373 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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