我有以下.htaccess文件,遗憾的是我在遇到404响应代码时没有重定向到错误页面
ErrorDocument 404 /404.php
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^index.html index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1$2$3 [NC]
这是我的PHP代码,它返回404:
if ($param1 != 'en')
{
header("HTTP/1.0 404 Not Found");
die();
}
我必须提到我无法访问apache日志,所以我无法弄清楚发生了什么。浏览器接收到404错误消息,只显示空白页面。
答案 0 :(得分:1)
这里没什么奇怪的。当Apache无法找到文档时,Apache仅使用ErrorDocument
指令 。但显然,它已经找到了你调用的PHP脚本。 PHP设置的HTTP状态不再是Apache的问题(除了将其提供给客户端)。
如果您需要自定义错误文档,请将其包含在die()
:
include_once "404.php";
die();