2013-02-25 89 views
1

这不是我的确切的PHP,因为它很复杂,但它是相同的一般想法。PHP - 标题404不触发htaccess ErrorDocument

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

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

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

+0

相关问题一并输出它:http://stackoverflow.com/questions/5534268/headerhttp-1 -0-404-not-found-not-doing-anything – User 2014-08-16 02:29:02

回答

2

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

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

+0

我很害怕这个。我会让这个问题坐下来一两天,看看是否有任何魔法黑客被发现,但如果没有,我会接受。 – 2013-02-25 07:33:18

0

这可能工作

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

不起作用。 'die();'也不起作用。 – 2013-02-25 16:53:41