PHP导航到错误页面

PHP导航到错误页面,php,redirect,http-status-code-404,Php,Redirect,Http Status Code 404,在我的网站中,website.com/downloads实际上转到website.com/index.php?page=downloads(使用apache重写)。我有一个自定义404未找到错误页面集。如果我做了website.com/dkfjf/fdf,它会出现404错误,但是如果我做了website.com/something,它会出现index.php?page=something,那么在我的index.php中,在我确定没有something页面之后,我如何让它导航到404错误?因为现在

在我的网站中,website.com/downloads实际上转到website.com/index.php?page=downloads(使用apache重写)。我有一个自定义404未找到错误页面集。如果我做了website.com/dkfjf/fdf,它会出现404错误,但是如果我做了website.com/something,它会出现index.php?page=something,那么在我的index.php中,在我确定没有
something
页面之后,我如何让它导航到404错误?因为现在,我只是将我的404错误页面加载到主div中(与所有其他页面一样),但它不一致(例如,它仍然在地址栏中显示website.com/soemthing,并且还有其他问题),我只想让它导航到404错误。我该怎么做

编辑:这起作用了:

echo '<meta http-equiv="refresh" content="0; url = /error" />';
echo';
(mywebsite.com/error重写为index.php?page=error,这是我的404错误页面)。 这是一种错误的方法吗?

使用发送正确的状态代码:

header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
然后,如果是静态文件或PHP文件,您可以使用发送错误文档。

使用发送正确的状态代码:

header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);

然后,如果是静态文件,或者是PHP文件,则可以发送错误文档。

@Mk12:在调用
标题之前,需要确保没有输出。否则,无法修改HTTP头,因为它与第一个输出一起发送。您可以使用输出控件缓冲输出(请参阅)。是否有某种方法可以只导航url(“/error”)?(website.com/error转到index.php?page=error,这是我的404错误页面设置的,但我希望/error显示在地址栏中。是否无法像单击链接一样导航到url?@Mk12:您不能发送404状态代码并同时执行HTTP重定向。最佳解决方案是检索错误文档使用PHP。我并不真正关心404状态代码,只是显示错误页面。@Mk12:在调用
头之前,您需要确保没有输出。
。否则HTTP头无法修改,因为它与第一个输出一起发送。您可以使用输出控件缓冲输出(请参阅).有没有什么方法可以让我直接浏览url(“/error”)?(website.com/error转到index.php?page=error,这是我的404错误页面设置的,但我希望/error显示在地址栏中。是否无法像单击链接一样导航到url?@Mk12:您不能发送404状态代码并同时执行HTTP重定向。最佳解决方案是检索错误文档我并不真正关心404状态代码,只是显示错误页面。