【发布时间】:2013-10-24 02:30:36
【问题描述】:
有没有办法拒绝除一个域之外的所有机器人?我希望搜索引擎不抓取,除非它是某个域。
【问题讨论】:
标签: robots.txt
有没有办法拒绝除一个域之外的所有机器人?我希望搜索引擎不抓取,除非它是某个域。
【问题讨论】:
标签: robots.txt
如果我正确理解您的 cmets 到另一个答案,则您有一个通配符子域,因此 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。当然,缺点是并非所有爬虫都能理解站点地图。有些人仍想以旧方式爬行。
【讨论】:
用户代理:*
不允许:/
用户代理:The robot you want to allow
允许:/
【讨论】: