在搜索相关资料时,看到不少朋友拿“跳转”来干“坏事”,例如欺骗友链。因为Discuz 换了默认域名,而www 仅做简单的展示。这次给蜘蛛作301 重定向的目的就是为了提供更好的用户体验,同时也避免因为“主页”做了大规模的变动而导致搜索引擎大K。

Discuz checkrobot() 函数:

checkrobot() 函数已在source/function/function_core.php 中定义

function checkrobot($useragent = ‘’) {
static $kw_spiders = array(‘bot’, ‘crawl’, ‘spider’ ,’slurp’, ‘sohu-search’, ‘lycos’, ‘robozilla’);
static $kw_browsers = array(‘msie’, ‘netscape’, ‘opera’, ‘konqueror’, ‘mozilla’);

$useragent = strtolower(empty($useragent) ? $\_SERVER\['HTTP\_USER_AGENT'\] : $useragent);
if(strpos($useragent, 'http://') === false && dstrpos($useragent, $kw_browsers)) return false;
if(dstrpos($useragent, $kw_spiders)) return true;
return false;

}

判断蜘蛛,启用PHP 301 重定向

新建一个php 页面,引入Discuz 核心类source/class/class_core.php:

发送301 HTTP 状态码后,跳转至新地址http://newdomain.com/。

使用蜘蛛模拟工具查看结果

使用较多的就是Chinaz 的工具了,执行一下蜘蛛模拟访问,发现输出了预期的新地址网页内容,也就是成功了。普通访客即非robot 不会遇到301 重定向。简单地完成任务!

Comments