返回列表 回复 发帖

修改版块列表页,为帖子内容页生成唯一地址

帖子页的URL形式有很多,我们可以通过修改viewthread.php和archive给内容页上canonical URL,都指向静态URL形式来集中权重。

但是,这个伪静态地址也不是唯一的:thread-{tid}-{page}-(forumpage).html, 由内容页URL组成可见最后一段数字是代表帖子在这个版块列表的第几页,当新帖子不断增加,老帖会被挤到第二页,第三页...这样它的URL就会不断地变化。

解决方法:修改forumdisplay.php
将$extra = rawurlencode("page=$page$forumdisplayadd");
改为$extra = rawurlencode("page=1$forumdisplayadd");
这样,最后一段固定为1,但有个缺点,用户从这个帖子只能返回列表页的第一页了。

上面的问题还是以观察收录结果是发现的,不过偶然看到7.0的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).'>'; }
也就是说,现在discuz会针对搜索引擎,把最后一段固定生成为1来解决这个问题。不知这个功能是什么时候加上的,但是观察收录结果,好像效果不怎么好,因为SE为防止作弊,有时会匿名访问,还是会把用户看到的URL收录。

全面优化请看 discuz seo优化手记

作者:SEO小工 原载:seo论坛 http://seo.banmutian.org/
版权所有,转载请以链接形式注明原文、作者、出处,并保留本声明。
交流QQ群:13519368
是不是7.0的就不用做这个修改了?
如果是6.1的,可以把7.0里面的global.func.php代码复制到6.1的吗?
咨询了seo小工,说7.0的DISCUZ不用修改这个了。

但是我刚发现6.1的global.func.php和7.0的这段对帖子静态化的代码一模一样,也有IS_ROBOT的变量。

而我查了一下搜索引擎对我的论坛(6.1版本的)帖子的收录,发现有帖子被收录的网址为
/thread-19502-1-8.html
这是否意味着这段代码其实没有什么用,DZ的改变也没有什么效果?

期待高手的解答
本帖最后由 SEO小工 于 2010-3-26 19:17 编辑

原来dz 6就有这个的代码了啊,看来这段针对搜索引擎写的代码也不管用。蜘蛛会匿名访问啊,一样把变化的URL抓到了...
交流QQ群:13519368
返回列表