首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 限制頁面僅允許百度與 Google 搜尋引擎蜘蛛訪問

     編輯:PHP 綜合知識

原理說明

搜尋引擎蜘蛛與一般用戶的區別在於 HTTP 請求頭中的 User-Agent。百度蜘蛛包含 Baiduspider,Google 蜘蛛包含 Googlebot。透過判斷 $_SERVER['HTTP_USER_AGENT'],即可識別並允許特定蜘蛛訪問,其餘請求返回 404。

核心函數實現

function isAllowAccess($directForbidden = FALSE) {
    $allowed = array('/baiduspider/i', '/googlebot/i');
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    $valid = FALSE;

    foreach ($allowed as $pattern) {
        if (preg_match($pattern, $user_agent)) {
            $valid = TRUE;
            break;
        }
    }

    if (!$valid && $directForbidden) {
        exit("404 not found");
    }

    return $valid;
}

調用方式

方式一:手動判斷

if (!isAllowAccess()) {
    exit("404 not found");
}

方式二:直接禁止非允許訪問

isAllowAccess(TRUE);

使用建議

  • 將函數放入共用檔案,於需保護的頁面頂部 require_once 引入
  • 可擴充 $allowed 陣列支援更多搜尋引擎(如 Bing、Yahoo 等)
  • 注意:偽造 User-Agent 可繞過此限制,僅作基礎過濾,不可作為絕對安全機制
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved