我正在尝试创建一个自定义的404错误页面。
到目前为止,我对所有不存在的文档、文件夹、图像、等都工作得很好-打开我的自定义404页面(带output 自定义404!html)
但是,当我试图访问一个不存在.php
扩展名的文件时,我得到的结果是:
在屏幕上显示“文件未找到.”,而不是被重定向到我的404文档。
我的.htaccess
RewriteEngine On
ErrorDocument 404 /404.php
我的404.php
<?php
header("HTTP/1.0 404 Not Found");
include '404.html';
die();
?>
我的404.html
<!DOCTYPE html>
<html>
<head>
<title>Custom 404 | Not found!</title>
</head>
<body>
Custom 404!
</body>
</html>
编辑
为了更清楚地了解这里发生了什么。
我相信路径和.htaccess运行得很好,但是php肯定有一些技巧。这里有几个例子:
当我尝试打开服务器上不存在的一些文件时:
发布于 2018-07-10 03:53:20
我怀疑不同之处在于php文件启动解释器,而html文件只提供服务。一个有效但可能不是唯一的或最好的解决方案是将此指令添加到主机配置文件中:
ProxyErrorOverride on
发布于 2019-12-01 13:27:16
这是因为您可能已经启用了mod_proxy_fcgi,并且正在使用PHP-FPM。代理中的默认错误页是File not found
。因此,将以下内容添加到httpd.conf或apache2.conf中,而不是添加到.htaccess中。
它使您的.htaccess文件的ErrorDocument
指令覆盖默认的代理错误页面。
ProxyErrorOverride On
谢谢。
https://stackoverflow.com/questions/50224464
复制相似问题