2009-10-25 107 views
0

在我的网站上,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中,我怎么能使它只是导航到404错误,我确定没有something页面?因为现在,我只是将我的404错误页面加载到主div(与所有其他页面一样),但它不一致(例如,它仍然在地址栏中显示website.com/soemthing,还有其他问题),而我只是想让它导航到404错误。我怎样才能做到这一点?PHP导航到错误页面

编辑:这工作:

echo '<meta http-equiv="refresh" content="0; url = /error" />'; 

(mywebsite.com/error重写到index.php页=错误,这是我的404错误页面?)。 这是一个坏方法吗?

回答

3

使用header function发送正确的状态码:

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

然后你就可以用readfile发送您的错误文档,如果它是一个静态文件或include如果它是一个PHP文件。

+0

@ Mk12:在调用'header'之前,您需要确保没有输出。否则,HTTP标头不能被修改,因为它与第一个输出一起发送。你可以使用输出控件来缓冲输出(参见http://php.net/manual/en/book.outcontrol.php)。 – Gumbo 2009-10-25 20:28:24

+0

是不是有一些方法我只能做navigate_url(“/错误”)? (website.com/error去index.php?page =错误,这是我的404错误页面设置,但我想/错误显示在地址栏中。 – mk12 2009-10-25 20:29:15

+0

有没有办法导航到一个URL好像它是一个链接点击? – mk12 2009-10-25 20:29:59