Robots.txt中的多个用户代理

时间:2013-02-05 14:52:44

标签: seo robots.txt

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

User-Agent: Bot1
Disallow: /A

User-Agent: Bot2
Disallow: /B

User-Agent: *
Disallow: /C

声明Disallow:c是否可见Bot1& Bot2?

2 个答案:

答案 0 :(得分:9)

tl; dr:不,Bot1和Bot2会很乐意抓取以C开头的路径。

每个机器人最多只能遵守a single record (block)

原始规格

original specification中说:

  

如果值为“*”,则记录描述任何未匹配任何其他记录的机器人的默认访问策略。

已过期的RFC草案

原始规范,包括一些新增内容(如Allow)成为RFC的草案,但从未被接受/发布。在3.2.1 The User-agent line中它说:

  

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

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

实现

例如,Google gives an example似乎遵循了规范:

  

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

User-agent: *
Disallow: /folder1/

User-Agent: Googlebot
Disallow: /folder2/
     

在此示例中,Googlebot仅允许匹配/folder2/的网址。

答案 1 :(得分:-2)

如果机器人服从robots.txt文件,那么该语句将是可见的,因此它们将无法抓取/ c。

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

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