<?php
// 獲取用戶代理字符串
$user_agent = isset($_SERVER[‘HTTP_USER_AGENT’]) ? $_SERVER[‘HTTP_USER_AGENT’] : ”;
// 檢查用戶代理是否是搜狗蜘蛛
$is_sogou_spider = false;
if (strpos($user_agent, ‘Sogou’) !== false || strpos($user_agent, ‘sogou’) !== false) {
$is_sogou_spider = true;
}
// 如果來自搜狗蜘蛛,則進(jìn)行屏蔽處理
if ($is_sogou_spider) {
// 設(shè)置 HTTP 狀態(tài)碼為 403 Forbidden
header(‘HTTP/1.1 403 Forbidden’);
// 輸出一條消息并終止腳本執(zhí)行
echo ‘訪問被禁止:您來自搜狗蜘蛛的訪問不被允許。’;
exit();
}
// 如果不是來自搜狗蜘蛛,繼續(xù)正常執(zhí)行你的腳本
echo ‘歡迎訪問!’;
?>
代碼說明
-
?獲取用戶代理字符串?:
- 使用?
$_SERVER['HTTP_USER_AGENT']
?獲取當(dāng)前請求的用戶代理字符串。
- 使用?
-
?檢查用戶代理?:
- 使用?
strpos
?函數(shù)檢查用戶代理字符串是否包含?Sogou
?或?sogou
(不區(qū)分大小寫)。
- 使用?
-
?處理屏蔽邏輯?:
- 如果檢測到用戶代理是搜狗蜘蛛,則設(shè)置 HTTP 狀態(tài)碼為 403 并輸出一條禁止訪問的消息,然后終止腳本執(zhí)行。
-
?正常訪問?:
- 如果用戶代理不是搜狗蜘蛛,則繼續(xù)執(zhí)行后續(xù)腳本。
注意事項
- 用戶代理字符串可能會被偽造,因此這種方法不能完全保證屏蔽所有搜狗蜘蛛的訪問。
- 對于更復(fù)雜的訪問控制需求,你可能需要結(jié)合其他技術(shù),如 IP 地址過濾、robots.txt 文件配置等。
- 此代碼只是基本的屏蔽實現(xiàn),具體應(yīng)用中可能需要根據(jù)實際情況進(jìn)行調(diào)整。
使用京策盾高防CDN可以完美杜絕這個問題,免去修改代碼的煩惱