2016-01-21 108 views
1

我想只允许目录/minsc的一个文件,但我想不允许目录的其余部分。只允许robots.txt中的一个目录文件?

在robots.txt

现在是这样的:

User-agent: * 
Crawl-delay: 10 
# Directories 
Disallow: /minsc/ 

,我想允许的文件是/minsc/menu-leaf.png

我怕造成伤害,所以我dont'know如果我一定要使用:

A)

User-agent: * 
Crawl-delay: 10 
# Directories 
Disallow: /minsc/ 
Allow: /minsc/menu-leaf.png 

B)

​​

非常感谢我的英语。

+0

不要忘了,机器人的文件是没有任何一种安全的。这只是一个“建议”。所以我不认为你可以在这里做任何真正的伤害。如果你弄错了,最糟糕的情况是搜索引擎将不再索引你的图片文件。机器人文件*不会*阻止任何人直接访问该文件或该文件夹中的任何其他文件,也不会阻止您的脚本工作。 –

回答

3

根据the robots.txt website

要排除所有文件,除了一个

这是目前有点尴尬,因为没有“允许”字段。该 简单的方法是把所有的文件将被禁止到一个单独的 目录,说“东西”,并留下了一个文件中的一级,这 上面的目录:

用户代理:*

不允许:/〜乔/材料/

或者你可以明确地禁止所有禁止的网页:

用户代理:*

不允许:/~joe/junk.html

不允许:/~joe/foo.html

不允许:/~joe/bar.html

Wikipedia,如果你要使用允许指令,它应该不允许走之前最大的兼容性:

Allow: /directory1/myfile.html 
Disallow: /directory1/ 

此外,你应该把抓取延迟最后,根据Yandex

为了保持与可能从 标准处理时的robots.txt偏离机器人的兼容性,抓取延迟指令需要 是添加到以Disallow和Allow指令之后的用户代理记录 开头的组)。

那么,到底,你的robots.txt文件应该是这样的:

User-agent: * 
Allow: /minsc/menu-leaf.png 
Disallow: /minsc/ 
Crawl-delay: 10 
+0

所以我的帖子的选项(A),但最大compayability是更好地把“允许”之前不允许。好? :) – Borja

+0

@ user3162975我刚编辑我的答案。看看最后。 – pzp

0

Robots.txt是一种可以被不同解释的“非正式”标准。唯一有趣的'标准'实际上是主要参与者如何解读它的。

,我发现这个源说,通配符(“*” - 风格通配符)不支持:

还要注意的是通配和正则表达式无论是在用户代理或禁止线不被支持。用户代理字段中的'*'是一个特殊的值,意思是“任何机器人”。具体而言,您不能拥有“User-agent:bot”,“Disallow:/ tmp/*”或“Disallow:* .gif”之类的行。

http://www.robotstxt.org/robotstxt.html

所以根据这个源,你应该用你的选择(一)坚持下去。

+0

所以(A)该文件是允许的,而所有其余的目录是不允许的...是吗?我害怕做破坏.. – Borja

+0

@ user3162975这就是我阅读它的方式,但我不是这方面的专家---没有保证。这方面没有权威的标准;你可以做的是阅读许多不同的来源并形成意见。 – jforberg

+0

嗯,你是对的:(与此同时别人写,我试着了解更多....非常感谢!) – Borja

相关问题