PHP - 标题404不触发htaccess ErrorDocument

时间:2013-02-25 07:13:11

标签: php apache .htaccess http-status-code-404 errordocument

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

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

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

有没有办法在不手动转储404页面文件内容的情况下加载指定的404页面?

2 个答案:

答案 0 :(得分:2)

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

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

一起输出

答案 1 :(得分:0)

这可能有效

if (strstr($_SERVER['REQUEST_URI'],'.htaccess')){
    header('HTTP/1.0 404 Not Found');   
    exit();
}