允许 webroot 中的所有文件,除非特别允许,否则不允许所有目录

Allow all files in webroot, and disallow all directories unless specifically allowed

我喜欢禁止所有内容,除了:

  1. 网络根目录下的所有文件
  2. Web 根目录中的指定目录。

我在 this answer

看到过这个例子
Allow: /public/section1/
Disallow: /

但是上面是否允许抓取网站根目录中的所有文件? 我想允许 Web 根目录中的所有文件。

如果要在不禁止文件的情况下禁止目录,则需要使用通配符:

User-agent: *
Allow: /public/section1/
Disallow: /*/

以上将允许以下所有内容:

http://example.com/
http://example.com/somefile
http://example.com/public/section1/
http://example.com/public/section1/somefile
http://example.com/public/section1/somedir/
http://example.com/public/section1/somedir/somefile

并且它将禁止以下所有内容:

http://example.com/somedir/
http://example.com/somedir/somefile
http://example.com/somedir/otherdir/somefile

请注意,通配符不是原始 robots.txt 规范的一部分,并非所有爬虫都支持。所有主要搜索引擎都支持它们,但还有许多其他不支持它们的爬虫。