用户代理是识别客户端的好方法。
这是根据来自浏览器的请求传递给服务器的用户代理字符串:
“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,像 Gecko)Chrome/57.0.2987.133 Safari/537.36”
来自谷歌:
Mozilla/5.0(兼容;Googlebot/2.1;+ http://www.google.com/bot.html)
来自必应:
Mozilla/5.0(兼容;bingbot/2.0;+ http://www.bing.com/bingbot.htm)
要将它们与 PHP 一起使用,您可以执行以下操作:
if (strpos($_SERVER['HTTP_USER_AGENT'],'bot') !== false) {
// This is probably a bot
}
如果您想更精确一点,您可能还想检查链接,如下所示:
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent,'bot') !== false && strpos($userAgent,'http') !== false) {
// It is probably a bot
}
这个问题和答案展示了如何使用 Apache 基于用户代理交付不同的内容:Rewrite rule for user agent with mod_rewrite