我想只允许一个目录/minsc
的文件,但我想禁止目录的其余部分。
现在robots.txt就是这样:
User-agent: *
Crawl-delay: 10
# Directories
Disallow: /minsc/
我想要允许的文件是/minsc/menu-leaf.png
我害怕造成伤害,所以我不知道是否必须使用:
A)
User-agent: *
Crawl-delay: 10
# Directories
Disallow: /minsc/
Allow: /minsc/menu-leaf.png
或
B)
User-agent: *
Crawl-delay: 10
# Directories
Disallow: /minsc/* //added "*" -------------------------------
Allow: /minsc/menu-leaf.png
谢谢,对不起我的英语。
答案 0 :(得分:5)
排除除一个
以外的所有文件目前这有点尴尬,因为没有“允许”字段。该 简单的方法是将所有文件都禁止分开 目录,说“stuff”,并将一个文件保留在上面的级别 目录:
用户代理:*
禁止:/ ~joe / stuff /
或者,您可以明确禁止所有不允许的页面:
用户代理:*
禁止:/〜joe / junk.html
禁止:/〜joe / foo.html
禁止:/〜joe / bar.html
根据Wikipedia,如果您打算使用Allow指令,它应该在Disallow之前进行,以获得最大的兼容性:
public final MyClass
此外,根据Yandex:
,您应该将Crawl-delay放在最后保持与可能偏离的机器人的兼容性 处理robots.txt时的标准,Crawl-delay指令需要 要添加到以User-Agent记录权限开头的组中 在Disallow和Allow指令之后)。
因此,最后,您的robots.txt文件应如下所示:
Allow: /directory1/myfile.html
Disallow: /directory1/
答案 1 :(得分:0)
Robots.txt是一种可以不同方式解释的“非正式”标准。唯一有趣的“标准”实际上是主要参与者如何解释它。
我发现这个消息来源说不支持globbing('*' - 样式通配符):
另请注意,User-agent或Disallow行不支持globbing和正则表达式。 User-agent字段中的'*'是一个特殊值,意思是“任何机器人”。具体来说,您不能拥有“User-agent: bot ”,“Disallow:/ tmp / *”或“Disallow:* .gif”这样的行。
http://www.robotstxt.org/robotstxt.html
所以根据这个来源,你应该坚持你的选择(A)。