我正在尝试创建自定义404错误页面。
到目前为止,我对所有未发送的文档,文件夹,图像,htmls等工作得很好 - 打开我的自定义404页面(输出自定义404!)
但是,当我尝试访问不存在.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。以下是一些例子:
当我尝试打开一些我服务器上不存在的文件时:
答案 0 :(得分:0)
我怀疑区别在于php文件会在HTML文件刚刚投放时启动解释程序。一种可行但并非唯一或最佳的解决方案是将该指令添加到主机配置文件中:
ProxyErrorOverride on
答案 1 :(得分:0)
发生这种情况是因为您可能已启用了mod_proxy_fcgi,并且正在使用PHP-FPM。代理中的默认错误页面为File not found
。因此,将以下内容添加到您的httpd.conf或apache2.conf中,而不是您的.htaccess中。
它使您的.htaccess文件的ErrorDocument
指令覆盖默认的代理错误页面。
ProxyErrorOverride On
谢谢。