为什么header()导致内部服务器错误?
问题描述:
我无法弄清楚可能会导致此错误的原因。我的Apache日志没有记录关于该页面的访问日志或错误日志中的任何错误,但不管怎样,当我取消注释header()
行时,我得到一个500内部服务器错误。在调用header()
之前输出内容时,它不会来自PHP的致命错误,那不会导致500会不会呢?为什么header()导致内部服务器错误?
header("Location: /offices/page-".ceil($cache->size()/15));
我测试$cache->size()
和它的返回22,所以它应该在2追加到字符串的结尾和重定向。我确实有ob_start()
的header()
之前打电话但是我打过电话前右它ob_end_clean()
,它仍然什么也没做......
我甚至试图把header("Location: /offices");
在文件的最开始,它仍然给了我一个500
答
该脚本将继续你的头()调用后执行。你需要在它之后立即放置exit;
。但这不应该导致500错误。
编辑:显然这个工作 - 意味着你的问题可能是在页面后面的一些相关的代码?
答
尝试使用完全形成的网址:
header("Location: http://{$_SERVER['HTTP_HOST']}/offices/page-".ceil($cache->size()/15));
答
我有同样的事情发生。在监视器上反复敲打我的头后,它不是标题(“Location:myPage.php”);这是破碎的行 - 这是myPage.php破碎了!尝试重定向到另一个页面。我希望我省去别人的时间
添加'exit'解决了问题... – animuson 2010-03-01 05:33:37
如果取消注释header()是唯一的其他更改,并且这固定它然后*怪异*。 – jasonbar 2010-03-01 05:35:31