当前位置:首页 > 网站运营 > seo搜索优化 > > discuz基础优化实践(二) 内容页的网页复制问题

discuz基础优化实践(二) 内容页的网页复制问题

点击次数:28 次 发布日期:2008-11-23 19:50:24 作者:源代码网
源代码网推荐

关键词:discuz优化  网页复制  内容页

-------- 声  明 --------
作者:BMT,仅发表于点石论坛,转载请保留所有信息
discuz基础优化实践(一) meta,content 优化
discuz基础优化实践(二) 内容页的网页复制问题
discuz基础优化实践(三) robots.txt使用及其它

以往对此问题的相关讨论


第一篇文章说了内容页本身的优化(meta,content)问题,这篇来解决内容页(viewthread)的网页复制问题


内容页伪静态URL不唯一

看看内容页的URL大家就知道了:thread-(tid)-(page)-(forumdisplay page).html,可以看出最后一节表示的是此帖在列表页的第几页。所以,当您的帖子越来越多,这个帖就会由第一页到第二页...,它的URL就会不断的变化。其实打开一个列表页就可以看出来,第2页的帖子链接的最后数字都是2,第3页的都是3,只是很少注意它。我是在SE的收录中发现复制网页越来越多,才对最后的数字注意的。

解决方法
修改 forumdisplay.php 文件:将 $extra = rawurlencode("page=$page$forumdisplayadd"); 语句替换为
$extra = rawurlencode("page=1$forumdisplayadd");

语句中的page就是forumdisplay page,这样改后不管帖子在列表页的第几页,这个数都是1。

功能损失:当用户编辑帖子或版主管理帖子后,有个提示跳转页:选择转入列表页还是主题页,这时转入列表页的话,只能转到列表页第一页,而不管您原来停留在第几页。



redirect的301重定向

在discuz论坛中可以看到类似redirect.php?tid=xxx&goto=lastpost#lastpost这样的链接,它的功能是实现“最新发表、最后发表、上一主题、下一主题“功能,仅这一个功能就可以给同一个内容页造成四份复制网页,因此将这样的链接301永久重定向到帖子的静态地址。

解决方法
修改 redirect.php 文件:
将前两个 require_once DISCUZ_ROOT."./viewthread.php"; 语句替换为
$bmt_url="Location:/thread-".$tid."-".$page."-1.html";
header("HTTP/1.1 301 Moved Permanently");
header( $bmt_url );
将后两个 require_once DISCUZ_ROOT."./viewthread.php"; 语句替换为
$bmt_url="Location:/thread-".$tid."-1-1.html";
header("HTTP/1.1 301 Moved Permanently");
header( $bmt_url );

dz5.5的引用处也有个跳转,也可以做301:
将 dheader("Location: viewthread.php?tid=$post[tid]&page=$page#pid$pid");替换为
$bmt_url="Location:/thread-".$post[tid]."-".$page."-1.html#pid".$pid;
header("HTTP/1.1 301 Moved Permanently");
header( $bmt_url );

***注意此处直接转到了静态地址,没有做判断是否开启伪静态功能,所以不开启会有问题

功能损失:转向到静态地址后,动态地址中类似#lastpost的锚点将无法起作用了,可能要手动滚屏了

???好像没有影响锚点


提示信息页的网页复制

这个问题和内容页也有着很大的关系,呵呵。如管理员设置允许游客浏览列表,而禁止浏览内容时,这些内容页都将返回一没有权限的提示信息页,但它们的URL是不同的,这样就形成了严重的网页复制,此外还有其它形成的无权操作等。别一种提示信息如帖子不存在等,数量大了也会形成网页复制。这两种提示信息,都是通过showmessage函数分别调用nopermission.htm和showmessage.htm两个模板实现的。

解决方法
1.创建另一个头模板文件 templates/default/header_disbots.htm
内容同 header.htm 文件,但加入meta robot标签,如下
<meta name="robots" content="noindex,nofollow" />

2.分别修改 templates/default/nopermission.htm 和 templates/default/showmessage.htm 文件
将它们第一行的 {template header} 替换为 {template header_disbots}

虽然对m9 7 3 1 2 4 8 :
上一页12 下一页 源代码网供稿.

网友评论 (0)
会员中心
网站运营
本站推荐
网站运营之精华