2011-05-25 87 views
1

此代码是否可以用于重定向搜索引擎?重定向搜索引擎?

<?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(); 
} 
?> 
+0

你试过了吗?有些浏览器(Konqueror和我认为Opera--可能还有Firefox通过插件)可让您更改用户代理字符串,因此您可以亲自尝试一下,看看会发生什么。 – FrustratedWithFormsDesigner 2011-05-25 14:43:19

+0

不可靠。无论你想要做什么,你都会以错误的方式去做。为什么你想尝试重定向索引机器人? – Quentin 2011-05-25 14:43:41

+0

@韦斯利 - 我们的网站正在转移到一个不同的领域,但是直到我们所有的用户都转移过来 - 我们只想提醒搜索引擎,所以我们的排名提前发生变化。那不是欺骗队友。 – Latox 2011-05-25 14:44:23

回答

0

是的,它会的。但是上面的函数非常不理想(它使用了不推荐的eregi()而不是简单的字符串函数strpos())。另外要小心:蜘蛛机器人不喜欢显示与用户浏览器内容不同的内容。

+0

我想他们会知道这个区别,如果有隐形蜘蛛机器人冒充浏览器,然后将结果与识别为蜘蛛的蜘蛛进行比较...... – FrustratedWithFormsDesigner 2011-05-25 14:49:39

0

以下是我认为:

  • ergei已被弃用:从PHP手册:

    此功能已被弃用的PHP 5.3.0的。依靠这个功能是非常不鼓励的。

  • 您的功能check_if_spider()返回TRUE/FALSE,但您在外面检查1个,不是非常直观和可读的代码。

  • 在您的.htaccess/config中处理搜索引擎机器人robots.txt或通过mod_rewrite rules而不是在PHP代码中处理好得多。