Apache ErrorDocument 脚本位置

Apache ErrorDocument 脚本位置

在 Linux 上使用 apache 2.4,有多个虚拟服务器,每个虚拟服务器都有自己的 DocumentRoot,我希望 apache 主服务器 ErrorDocument 本地重定向执行与 apache 主 DocumentRoot 相关的单个 perl 脚本,而不是每个虚拟服务器下的 perl 脚本。

发生的情况是,虚拟服务器的文档根目录用于构建文件系统路径,而不是主服务器的文档根目录。

有没有什么方法可以配置 apache 服务器以仅使用单个本地重定向脚本,而不是(显然)必须在每个虚拟服务器的 DocumentRoot 中都有一个(相同的)脚本?

答案1

您可以通过将以下指令放置在全局(服务器)上下文中(即不在任何 <VirtualHost> 块内)来设置单个全局错误文档。然后它将适用于您的所有虚拟主机。这向您展示了一个静态 HTML 文件,但可以轻松地将其修改为 perl 脚本

别名 /error-404.html /path/to/my/errors/error-404.html
错误文档 404 /error-404.html

<目录“/path/to/my/errors”>
  要求所有授予
</目录>

答案2

您可以将 ErrorDocument 设置为外部资源,例如

ErrorDocument 500 http://error.example.com/server_error.html

因此您只需引用主虚拟主机上的脚本即可。

不管你信不信,这都有记载ErrorLog 的文档

相关内容