2011-05-25 153 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代碼中處理好得多。