如何在robots.txt中允许使用URL,但不允许其他类似于允许的URL

时间:2013-09-03 05:34:28

标签: robots.txt

这就是我现在使用的:

User-agent: *
Allow: /
Allow: /video/funny-dogs/index.html
Allow: /video/funny-cats/index.html
Allow: /video/funny-dolphins/index.html
Disallow: /video/

但似乎所有其他人" / video /"网址也在被抓取。

这有什么不对?

2 个答案:

答案 0 :(得分:2)

你的robots.txt文件肯定适用于Google,我相信它适用于Bing。然而,对于许多其他机器人来说,它可能不会起作用,因为并非所有机器人都优先考虑竞争允许&不允许以同样的方式。此外,有些机器人根本不支持Allow。

对于Google / Bing以外的机器人,您可以通过删除“允许:/”行来增加成功的机会。许多较旧的机器人会查找可应用于当前URL的第一个指令,然后停止查找。对于这些机器人,将始终应用allow,并且将始终忽略其他指令。删除“允许:/”应解决此问题。

如果Google或Bing没有遵守您的robots.txt文件,那么可能会出现问题。您可以检查以下内容:

  • 最近是否添加/更改了robots.txt文件? Google通常需要一周时间才会注意到新的robots.txt文件。
  • 网站根目录中的robots.txt是? (例如在http://somesite.com/robots.txt,而不是http://somesite.com/subdir/robots.txt
  • 请求robots.txt文件在响应标头中返回任何有趣的内容,例如X-Robots-Tag:noindex或200以外的状态代码?

答案 1 :(得分:1)

原始的robots.txt规范说机器人应该阅读robots.txt并采用适用的第一条规则。添加Allow时,未更改,许多机器人仍使用该规则。其他机器人使用最宽松的规则。

在第一种情况下,文件第一行的Allow: /将导致机器人认为它可以抓取。在第二种情况下,文件中存在Allow: / where 将导致机器人认为它可以抓取任何内容。

包含Allow: /从来没有充分的理由。 robots.txt中的假设是,如果没有明确禁止文件,则允许进行爬网。 Allow旨在成为Disallow的替代或例外。

删除Allow: /。事情应该适用。