1

这不是我的确切 PHP,因为它相当复杂,但它是相同的一般想法。

if($_GET['page'] == ".htaccess"){
    header("HTTP/1.0 404 Not Found");
}

发生这种情况时,Apache 不会加载 .htaccess 文件中设置的 404 页面。我知道 404 有效,因为当我转到一个不存在的页面时,我得到了指定的 404 页面。

有什么方法可以让指定的 404 页面加载而无需手动转储 404 页面文件的内容?

4

2 回答 2

2

由于 Apache 已经确定该文件确实存在,它不会再次查找 404。

一种解决方法可能是实际上将Location-header 发送到实际不存在的页面并让 Apache 处理它。另一个可能是通过 PHP 获取 404 页面内容并将其与Status: 404-header一起输出

于 2013-02-25T07:28:11.530 回答
0

这可能有效

if (strstr($_SERVER['REQUEST_URI'],'.htaccess')){
    header('HTTP/1.0 404 Not Found');   
    exit();
}
于 2013-02-25T11:39:22.060 回答