这段代码能重定向搜索引擎吗?
<?php
function check_if_spider()
{
$spiders = array(
'Googlebot', 'Yammybot', 'Openbot', 'Yahoo', 'Slurp', 'msnbot',
'ia_archiver', 'Lycos', 'Scooter', 'AltaVista', 'Teoma', 'Gigabot',
'Googlebot-Mobile'
);
foreach ($spiders as $spider)
{
if (eregi($spider, $_SERVER['HTTP_USER_AGENT']))
{
return TRUE;
}
}
return FALSE;
}
if (check_if_spider() == 1){
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: http://www.site.com');
exit();
}
?>
是的,会的。但是上面的函数是非常不优化的(它使用了不推荐使用的eregi(),而不是简单的字符串函数strpos())。还要小心:当你们向蜘蛛机器人显示和用户浏览器不同的内容时,他们不喜欢这种情况。
以下是我的想法:
-
ergei已弃用:来自PHP手册:
自PHP 5.3.0起,此函数已弃用。强烈反对依赖此功能。
-
函数
check_if_spider()
返回TRUE/FALSE,但您在外部检查1,这不是非常直观和可读的代码。 -
在
robots.txt
中处理搜索引擎机器人程序要好得多,或者通过.htaccess/config中的mod_rewrite规则处理,而不是在PHP代码中处理。