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

帖子页的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,但有个缺点,用户从这个帖子只能返回列表页的第一页了。

discuz seo悄悄地在改变:上面的问题还是以观察收录结果是发现的,不过discuz7.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来解决这个问题。虽然是针对用户和搜索引擎分别处理,但内容都是一样的,并没有欺骗,应该还是没问题的。

另外,在伪静态替换中发现对robots进行了特殊处理,说明动态地址没有处理这个问题。

Tags: ,

星期五, 12 3 月, 2010 Web

Leave a Reply

1LMooBmUE153Wnd3zDryWvDyXxQudbFxDr