用301重定向使搜索引擎不重复收录多个域名的网页
2008 12 8 11:24 PM 2175次查看
而重复收录的后果就是:经过一段时间的更新,搜索引擎会删除重复收录的网页,于是你的域名下被收录的网页就全部乱套了。
例如现在,百度收录的我的主页还是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种是通用的改法,可以直接套用。最后,去后台更新缓存即可。
向下滚动可载入更多评论,或者点这里禁止自动加载。