用301重定向使搜索引擎不重复收录多个域名的网页

标签:PHP, SEO

由于本站有多个域名,搜索引擎不知道该收哪个域名下的网页,便有可能重复收录。
而重复收录的后果就是:经过一段时间的更新,搜索引擎会删除重复收录的网页,于是你的域名下被收录的网页就全部乱套了。
例如现在,百度收录的我的主页还是dx.keakon.cn,而不是www.keakon.cn。

如果你只关注Google,那只要登录Google网站管理员工具,在“设置”中选择“首选域”即可。
不过效果并不明显,至少dx.keakon.cn和keakon.cn都被收录了。

于是祭出了301重定向,让其他域名都指向一个默认域名即可。不过为了不让访问者被重定向,所以还得判断是否为搜索引擎。

注:
1.我是针对PHP的discuz来做的,ASP等不适用,你可以自行查找对应语法。
2.请将所有的www.keakon.cn替换成你自己的域名。

先修改你的主页(假设不是论坛主页,且是php文件),在头部加上:
<?php
if ((strpos($_SERVER['HTTP_HOST'], 'www.keakon.cn') === FALSE) && preg_match('/(bot|crawl|spider|slurp|yahoo|sohu-search|lycos|robozilla)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
	header("HTTP/1.1 301 Moved Permanently");
	header("Location: http://www.keakon.cn/");
	exit();
}
?>
再修改论坛的主页,假设是在bbs文件夹下,打开index.php文件,在<?php后面另起一行,添加:
if ((strpos($_SERVER['HTTP_HOST'], 'www.keakon.cn') === FALSE) && preg_match('/(bot|crawl|spider|slurp|yahoo|sohu-search|lycos|robozilla)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
	header("HTTP/1.1 301 Moved Permanently");
	header("Location: http://www.keakon.cn/bbs/");
	exit();
}
接着是viewthread.php和forumdisplay.php,在<?php后面另起一行,添加:
if ((strpos($_SERVER['HTTP_HOST'], 'www.keakon.cn') === FALSE) && preg_match('/(bot|crawl|spider|slurp|yahoo|sohu-search|lycos|robozilla)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
	$myurl = 'Location: http://www.keakon.cn'.$_SERVER['HTTP_X_REWRITE_URL'];
	header("HTTP/1.1 301 Moved Permanently");
	header($myurl);
	exit();
}
如果还有其他要改的,请自行修改,一般第3种是通用的改法,可以直接套用。
最后,去后台更新缓存即可。

1条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?