这不是我的确切 PHP,因为它相当复杂,但它是相同的一般想法。
if($_GET['page'] == ".htaccess"){
header("HTTP/1.0 404 Not Found");
}
发生这种情况时,Apache 不会加载 .htaccess 文件中设置的 404 页面。我知道 404 有效,因为当我转到一个不存在的页面时,我得到了指定的 404 页面。
有什么方法可以让指定的 404 页面加载而无需手动转储 404 页面文件的内容?
这不是我的确切 PHP,因为它相当复杂,但它是相同的一般想法。
if($_GET['page'] == ".htaccess"){
header("HTTP/1.0 404 Not Found");
}
发生这种情况时,Apache 不会加载 .htaccess 文件中设置的 404 页面。我知道 404 有效,因为当我转到一个不存在的页面时,我得到了指定的 404 页面。
有什么方法可以让指定的 404 页面加载而无需手动转储 404 页面文件的内容?
由于 Apache 已经确定该文件确实存在,它不会再次查找 404。
一种解决方法可能是实际上将Location
-header 发送到实际不存在的页面并让 Apache 处理它。另一个可能是通过 PHP 获取 404 页面内容并将其与Status: 404
-header一起输出
这可能有效
if (strstr($_SERVER['REQUEST_URI'],'.htaccess')){
header('HTTP/1.0 404 Not Found');
exit();
}