我知道可以为 Apache 服务器上的所有域创建一个 robots.txt 文件*, 但是我要附加到每个域的 robots.txt(如果已存在)。我希望为所有域制定一些通用规则,但我需要允许不同的域拥有其独特的规则。
有办法实现这个吗?
(*我的情况是 Apache 2.2.x)
答案1
从 Apache 的角度来看,它只是一项需要提供的资产。您可以通过输出过滤器来robots.txt
更改请求时返回的内容。robots.txt
如果你想添加一些文本,你可以定义一个外部过滤器假设 Apache 在类 Unix 操作系统上运行,则过滤器配置可以是
ExtFilterDefine appendRobotstxt cmd="/bin/cat - /var/www/html/robots-tail.txt"
<Location /robots.txt>
SetOutputFilter appendRobotstxt
</Location>
这将连接robots-tail.txt
到响应的末尾。
答案2
请注意,您可能需要合并这些更改。如果域名已经
User-agent: *
Disallow: /search
并且您想要为所有域添加
User-agent: *
Disallow: /admin/
你必须做到
User-agent: *
Disallow: /search
Disallow: /admin/
因为 robots.txt 解析器一旦找到与其匹配的块就会停止。