有没有办法拒绝除一个域之外的所有机器人?我希望搜索引擎不抓取,除非它是某个域。
问问题
1513 次
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 回答