如何创建一个全局 robots.txt,并将其附加到 Apache 上每个域自己的 robots.txt 中?

如何创建一个全局 robots.txt,并将其附加到 Apache 上每个域自己的 robots.txt 中?

我知道可以为 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 解析器一旦找到与其匹配的块就会停止。

相关内容