有没有办法拒绝除一个域名以外的所有机器人?我希望搜索引擎不会抓取,除非它是某个域。
答案 0 :(得分: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。当然,缺点是并非所有抓取工具都能理解Sitemaps。有些人仍然希望以旧的方式爬行。
答案 1 :(得分:0)
用户代理:*
禁止:/
用户代理:The robot you want to allow
允许:/