在robots.txt文件中,我有以下部分
User-Agent: Bot1
Disallow: /A
User-Agent: Bot2
Disallow: /B
User-Agent: *
Disallow: /C
声明Disallow:c
是否可见Bot1& Bot2?
答案 0 :(得分:9)
tl; dr:不,Bot1和Bot2会很乐意抓取以C
开头的路径。
每个机器人最多只能遵守a single record (block)。
如果值为“*”,则记录描述任何未匹配任何其他记录的机器人的默认访问策略。
原始规范,包括一些新增内容(如Allow
)成为RFC的草案,但从未被接受/发布。在3.2.1 The User-agent line中它说:
机器人必须遵守/robots.txt中包含User-Agent行的第一条记录,该行的值包含机器人的名称标记作为子字符串。名称比较不区分大小写。如果不存在这样的记录,它应该服从具有“*”值的用户代理行的第一个记录(如果存在)。如果没有任何记录满足任何条件,或者根本没有记录,则访问权限是无限制的。
因此它证实了对原始规范的解释。
robots.txt文件中的每个部分都是独立的,并不构建在前面的部分之上。例如:
User-agent: * Disallow: /folder1/ User-Agent: Googlebot Disallow: /folder2/
在此示例中,Googlebot仅允许匹配
/folder2/
的网址。
答案 1 :(得分:-2)
如果机器人服从robots.txt文件,那么该语句将是可见的,因此它们将无法抓取/ c。
用户代理之后的通配符(*)表示所有用户代理。
但请记住,并非所有机器人都遵守robots.txt