robots.txt 只需要某些文件和文件夹,不允许一切

robots.txt needs only certain files and folders and disallow everything

我希望 robots.txt 只允许 index.phpimages 文件夹并禁止所有其他文件夹,这可能吗?

这是我的代码:

User-agent: *
Allow: /index.php
Allow: /images
Disallow: /

其次,是否可以用 htaccess 做同样的工作?

是的,该代码是正确的。 robots.txt 文件是从上到下读取的,因此只要 disallow 在底部,您就不会 运行 出问题。这是因为它匹配第一条规则,如果 disallow 在顶部,那么它永远不会到达 allow 语句。

Edit/Sidenote:
这仅适用于遵循标准的 "good"(Googlebot、Bingbot 等)机器人。许多其他机器人要么误解了 robots.txt 文件,要么完全忽略它。

首先,请注意 "Allow" 选项实际上是一个 非标准 扩展并且 并非所有爬虫都支持 .见 wiki page (in the "Nonstandard extensions" section) and the robotstxt.org page.

This is currently a bit awkward, as there is no "Allow" field. The easy way is to put all files to be disallowed into a separate directory, say "stuff", and leave the one file in the level above this directory:

一些主要的爬虫 支持它,但令人沮丧的是他们以不同的方式处理它。例如。 Google 通过匹配字符和路径长度来优先考虑 Allow 语句,而 Bing 更喜欢您将 Allow 语句放在第一位。不过,您在上面给出的示例在这两种情况下都适用。

请记住,那些不支持它的抓取工具会简单地忽略它,因此只会看到您的 "Disallow" 规则,从而有效地阻止他们将您的整个网站编入索引!您必须决定移动文件的额外工作(或为您的所有子目录编写一长串禁止规则)是否真的值得被较小的爬虫索引所带来的好处。应该不是。

Ref htaccess,你不能在这里做任何有用的事情。您必须将用户代理与大量已知机器人进行匹配,而您最终会遗漏一些 - 或者更糟的是,阻止真实用户。