根据this "隐藏真实内容是指向人类用户和搜索引擎展示不同内容或网址的做法" 相同的链接举例如下:
Serving a page of HTML text to search engines, while showing a page of images or Flash to users
问题:如果我已正确解释,必须有一种机制来识别实体,无论是搜索引擎还是浏览器(用户)在Web服务器上。我们称之为这种机制?或者只是重定向的PHP或JavaScript代码? Web服务器如何实际知道该实体' X'搜索引擎和实体' Y'是网络浏览器吗?
答案 0 :(得分:1)
用户代理是识别客户端的好方法。
这是根据浏览器请求传递给服务器的用户代理字符串:
" Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 57.0.2987.133 Safari / 537.36"
来自Google:
Mozilla / 5.0(兼容; Googlebot / 2.1; + http://www.google.com/bot.html)
来自Bing:
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