Robots.txt,如何只允许访问域根目录,而不允许更深层次的访问?

发布于 2024-10-20 20:52:56 字数 1459 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

血之狂魔 2024-10-27 20:52:56

没有什么东西适合所有的爬虫。有两个选项可能对您有用。

允许通配符的机器人应该支持如下内容:

Disallow: /*/

主要的搜索引擎爬虫可以理解通配符,但不幸的是大多数较小的爬虫不能理解。

如果根目录中的文件相对较少,并且不经常添加新文件,则可以使用 Allow 只允许访问这些文件,然后使用 Disallow: / 限制其他一切。那就是:

User-agent: *
Allow: /index.html
Allow: /coolstuff.jpg
Allow: /morecoolstuff.html
Disallow: /

这里的顺序很重要。爬行者应该拿下第一场比赛。因此,如果您的第一条规则是 Disallow: /,则行为正常的抓取工具将无法访问以下 Allow 行。

如果抓取工具不支持 Allow,那么它将看到 Disallow: / 并且不会抓取您网站上的任何内容。当然,前提是它忽略 robots.txt 中它不理解的内容。

所有主要的搜索引擎爬虫都支持 Allow,许多较小的搜索引擎爬虫也支持。它很容易实现。

There's nothing that will work for all crawlers. There are two options that might be useful to you.

Robots that allow wildcards should support something like:

Disallow: /*/

The major search engine crawlers understand the wildcards, but unfortunately most of the smaller ones don't.

If you have relatively few files in the root and you don't often add new files, you could use Allow to allow access to just those files, and then use Disallow: / to restrict everything else. That is:

User-agent: *
Allow: /index.html
Allow: /coolstuff.jpg
Allow: /morecoolstuff.html
Disallow: /

The order here is important. Crawlers are supposed to take the first match. So if your first rule was Disallow: /, a properly behaving crawler wouldn't get to the following Allow lines.

If a crawler doesn't support Allow, then it's going to see the Disallow: / and not crawl anything on your site. Providing, of course, that it ignores things in robots.txt that it doesn't understand.

All the major search engine crawlers support Allow, and a lot of the smaller ones do, too. It's easy to implement.

小糖芽 2024-10-27 20:52:56

简而言之,没有办法使用 robots.txt 标准很好地做到这一点。请记住“禁止”指定路径前缀。 通配符和允许是非标准的。

因此以下方法(一个拼凑!)将起作用。

User-agent: *
Disallow: /a
Disallow: /b
Disallow: /c
...
Disallow: /z
Disallow: /A
Disallow: /B
Disallow: /C
...
Disallow: /Z
Disallow: /0
Disallow: /1
Disallow: /2
...
Disallow: /9

In short no there is no way to do this nicely using the robots.txt standard. Remember the Disallow specifies a path prefix. Wildcards and allows are non-standard.

So the following approach (a kludge!) will work.

User-agent: *
Disallow: /a
Disallow: /b
Disallow: /c
...
Disallow: /z
Disallow: /A
Disallow: /B
Disallow: /C
...
Disallow: /Z
Disallow: /0
Disallow: /1
Disallow: /2
...
Disallow: /9
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文