用户代理字符串是否必须与我的服务器日志中显示的字符串完全相同?

时间:2011-01-13 01:56:45

标签: seo robots.txt

使用Robots.txt文件时,用户代理字符串是否必须与我的服务器日志中显示的完全相同?

例如,在尝试匹配GoogleBot时,我可以使用googlebot吗?

另外,部分匹配会有效吗?例如,只使用Google

5 个答案:

答案 0 :(得分:3)

至少对于googlebot,用户代理不区分大小写。阅读“用户代理的优先顺序”部分:

https://code.google.com/intl/de/web/controlcrawlindex/docs/robots_txt.html

答案 1 :(得分:2)

(已经answered in another question

original robots.txt specification (from 1994)中,它说:

  

用户代理

     

[...]

     

机器人应该自由地解释这个领域。建议不带版本信息的名称不区分大小写的子串匹配。

     

[...]

但是,如果/解析器的工作方式是另一个问题。您最好的选择是查找要添加的机器人的文档。您通常会在其中找到代理标识符字符串,例如:

  • Bing

      

    我们希望网站管理员知道bingbot仍然会遵守为msnbot编写的robots.txt指令,因此您的robots.txt文件不需要进行任何更改。

  • DuckDuckGo

      

    DuckDuckBot是DuckDuckGo的Web爬虫。它尊重WWW :: RobotRules [...]

  • Google

      

    Google用户代理(恰当地)Googlebot

  • Internet Archive

      

    用户代理archive.org_bot用于我们对网络的广泛抓取。它旨在尊重robots.txt和META机器人标签。

  • ...

答案 2 :(得分:1)

是的,用户代理必须完全匹配。

来自robotstxt.org:“User-agent或Disallow行不支持globbing和正则表达式”

答案 3 :(得分:1)

robots.txt区分大小写,虽然谷歌比其他机器人更保守,并且可能接受其字符串,其他机器人可能不会。

答案 4 :(得分:1)

  

另外,部分匹配会有效吗?例如,只使用Google

理论上,是的。然而,在实践中,它似乎是特定的部分匹配或"子串" (如@ unor的答案所述)匹配。这些特定的"子串"似乎被称为"令牌"。对于这些"令牌"通常必须是完全匹配

对于标准Googlebot,这似乎只与Googlebot匹配(不区分大小写)。任何较小的部分匹配(例如Google)都无法匹配。任何较长的部分匹配(例如Googlebot/1.2)都无法匹配。并且使用完整的用户代理字符串(Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)也无法匹配。 (尽管Googlebot在技术上有多个用户代理,但无论如何都不建议匹配完整的用户代理字符串 - 即使它确实有效。)

这些测试是使用Google's robots.txt tester执行的。

参考: