0

有没有办法拒绝除一个域之外的所有机器人?我希望搜索引擎不抓取,除非它是某个域。

4

2 回答 2

1

如果我正确理解了您对另一个答案的评论,那么您有一个通配符子域,因此 foo.example.com 和 bar.example.com 以及 fooby.example.com 最终都会去同一个地方。只有一条物理路径服务于所有这些域。

如果是这种情况,那么您不能使用单个 robots.txt 文件来执行此操作。robots.txt 中的规则都是基于域名之后的内容。

我建议您在该目录中创建一个 robots.txt 文件,其中包含:

User-agent: *
Disallow: /

这将阻止所有机器人抓取任何东西。

现在,假设您希望仅在访问 foo.example.com 时才允许抓取,我将创建一个重写规则,以便尝试访问 foo.example.com/robots.txt 而不是从 foo.example 获取数据。 com/robots_foo.txt。该文件将包含:

User-agent: *
Disallow:

这允许访问所有内容。当然,您可以添加任何您想要的禁止规则。

如果您无法创建重写规则,那么您将不得不使用Sitemaps。当然,缺点是并非所有爬虫都能理解站点地图。有些人仍然想以旧方式爬行。

于 2013-10-24T20:52:45.583 回答
0

用户代理: *

不允许: /

用户代理:The robot you want to allow

允许: /

于 2013-10-24T02:42:17.467 回答