Robots.txt中的多个用户代理



在robots.txt文件中,我有以下部分

User-Agent: Bot1
Disallow: /A
User-Agent: Bot2
Disallow: /B
User-Agent: *
Disallow: /C

语句CCD_ 1对Bot1&Bot2?

tl;dr:不,Bot1和Bot2将愉快地从C开始爬行路径。

每个机器人最多只能遵守一个记录(块)。

原始规格

在最初的规范中,它说:

如果值为"*",则该记录将描述与任何其他记录都不匹配的任何robot的默认访问策略。

已过期的RFC草案

最初的规范,包括一些添加(如Allow),成为RFC的草案,但从未被接受/发布。在3.2.1用户代理行中,它说:

robot必须遵守/robots.txt中的第一条记录,该记录包含一个用户代理行,该行的值包含robot的名称令牌作为子字符串。名称比较不区分大小写。如果不存在这样的记录,则它应遵守具有"*"值的用户代理行的第一条记录(如果存在)。如果没有满足任何一个条件的记录,或者根本不存在任何记录,则访问是不受限制的。

因此,它证实了对原始规范的解释

实施

例如,谷歌给出了一个似乎遵循规范的例子:

robots.txt文件中的每个部分都是独立的,并且不建立在以前的部分之上。例如:

User-agent: *
Disallow: /folder1/
User-Agent: Googlebot
Disallow: /folder2/

在这个例子中,只有与/folder2/匹配的URL才会被Googlebot禁止。

如果机器人遵守robots.txt文件,是的,该语句将可见,因此它们将无法爬网/c。

用户代理后面的通配符(*)表示所有用户代理。

但是,请记住,并非所有机器人都遵守robots.txt

最新更新