我们的服务器上托管了多个网站。我们在 apache 配置中设置了一个自定义 not_found.php 文件,它运行良好。
对于我们的一些虚拟主机,我们需要一个自定义 not_found.php 文件。在<VirtualHost
> 部分中,我们设置了一个自定义 404 文件。当我们尝试访问该虚拟主机中不存在的 URL 时,我们会收到“文件未找到”错误(不是典型的 Firefox 404 未找到)。
如果我们将文件重命名为 .html 并在配置中将其更改为 .html,它就会正常加载自定义 404(当然 PHP 脚本不起作用)。所以我知道它正在读取 VirtualHost 中的自定义 ErrorDocument 语句。而且我知道路径没有问题。它只是不适用于 .php 扩展名。
以下是相关配置:
<VirtualHost>
Alias "/error_docs" "/var/www/vhosts/domain.com/error_docs"
ErrorDocument 404 /error_docs/not_found.php
</VirtualHost>
PS. PHP 脚本在整个网站中均可运行(因此我们知道 PHP 运行良好)。
有任何想法吗?
答案1
我找到了答案。有人专门error_docs
使用以下方法关闭了该文件夹的 PHP:
php_admin_flag engine off
它被藏起来了,今天我才偶然发现它。