使用php发送404标头,当标头已经发送时(解决方法)

时间:2015-12-05 22:12:07

标签: header http-status-code-404

我试图发送404标题:

header('HTTP/1.0 404 Not Found');

但它没有用。

我认为它不起作用,因为标题是在页面末尾发送的。

问题是......

如果用户请求页面mydomain / help   - >服务器显示帮助

如果用户使用mydomain/blub@asdfsi.com验证电子邮件地址 - >服务器激活电子邮件地址

这意味着,如果可以显示或不显示任何页面,则只能在页面末尾给出决定,因为可能的URI不是静态的...

有没有人知道,如何在处理/输出许多内容后发送404标题?

PS:抱歉我的英语不好; - )

2 个答案:

答案 0 :(得分:0)

解决方案(开头):

$allowed= array('Start' , 'Main', 'Sub' , 'Presub');

if (!in_array($url, $allowed)) 
{
    header('HTTP/1.0 404 Not Found');
}

它有效,但将来,阵列可能会越来越长......

还有其他想法吗?

答案 1 :(得分:0)

如果遇到此错误,请按照以下步骤替换header(Location: ...)

echo '<script type="text/javascript">
          window.location.href = "PATH TO REDIRECT TO";
      </script>';