discuz论坛禁止无效页面的收录

discuz会产生哪些无效的页面,有什么问题

1.删除了的帖子、版块,当访问时返回帖子不存在的提示信息页。

2.设置了一定权限才能浏览的帖子、版块,很多情况会泄露链接,得到没权限的提示

3.其它各种情况下的提示信息页面。这些都是给用户看的,没有实质内容,都禁止收录。

其实最大的问题还是副本内容的问题,因这些不同的URL,返回的却是相同的内容。对SE不友好。其实对于删除了内容,应该返回404,但为了简单,都使用加meta robots标签,禁止ES收录的方法来解决。

修改提示信息页面,解决重复内容问题

方法一

1.建立/templates/defualt/header_norobot.htm文件

完全拷贝header.htm的内容,在<title>下再加一行:

<meta name=”robots” content=”noindex,nofollow” />

2.修改/templates/default/showmessage.htm文件

将{subtemplate header}替换为{subtemplate header_norobot}

3.修改/templates/default/nopermission.htm文件

将{subtemplate header}替换为{subtemplate header_norobot}

如此修改之后,SE就不会收录无权访问的URL,对于已删除的帖子,因为禁止收录了,过一段时间也会从索引中删除。这样,给SE的都是一些有内容的网页,对于提高权重会有好处。

方法二

修改global.func.php文件中的showmessage函数。

function showmessage($message, $url_forward = '', $extra = '', $forwardtype = 0) {
extract($GLOBALS, EXTR_SKIP);
global $hookscriptmessage, $extrahead, $discuz_uid, $discuz_action, $debuginfo, $seccode, $seccodestatus, $fid, $tid, $charset, $show_message, $inajax, $_DCACHE, $advlist;
define('CACHE_FORBIDDEN', TRUE);
$hookscriptmessage = $show_message = $message;$messagehandle = 0;

在第四行 define(‘CACHE_FORBIDDEN’, TRUE); 后面加上:

$extrahead .='';

即是

function showmessage($message, $url_forward = '', $extra = '', $forwardtype = 0) {
extract($GLOBALS, EXTR_SKIP);
global $hookscriptmessage, $extrahead, $discuz_uid, $discuz_action, $debuginfo, $seccode, $seccodestatus, $fid, $tid, $charset, $show_message, $inajax, $_DCACHE, $advlist;
define('CACHE_FORBIDDEN', TRUE);
$extrahead .='<meta name="robots" content="noindex,nofollow" />';
$hookscriptmessage = $show_message = $message;$messagehandle = 0;

Tags: , ,

星期五, 三月 12th, 2010 Web

Leave a Reply

1LMooBmUE153Wnd3zDryWvDyXxQudbFxDr