标题(“位置”)导致[500]内部服务器错误?

时间:2010-03-01 05:19:14

标签: php apache redirect

我无法弄清楚可能导致此错误的原因。我的Apache日志没有在访问日志或错误日志中记录有关页面的任何错误,但是当我取消注释header()行时,我得到500内部服务器错误。在调用header()之前输出内容时,它不能来自PHP的致命错误,这不会导致500吗?

header("Location: /offices/page-".ceil($cache->size() / 15));

我测试$cache->size()并且它返回22,所以它应该在字符串的末尾添加2并重定向。我确实在ob_start()之前调用了header(),但我尝试在它之前调用ob_end_clean()并且它仍然没有做任何事情......

我甚至尝试将header("Location: /offices");放在文件的最开头,它仍然给我500.

5 个答案:

答案 0 :(得分:3)

脚本()调用后脚本继续执行。您需要在其后立即放置exit;。但这不应该导致500错误。

编辑:显然这有效 - 意味着您的问题可能在页面下方的某些相关代码中?

答案 1 :(得分:2)

尝试使用完整格式的网址:

header("Location: http://{$_SERVER['HTTP_HOST']}/offices/page-".ceil($cache->size() / 15));

答案 2 :(得分:1)

另一个原因可能是-您需要在location之后删除空格

header("location :
   header("location:

如果这不是您的问题,请尝试检查php和apache 错误日志

答案 3 :(得分:1)

我确实遇到了同样的问题,但似乎我写的是 header("Location : page.php") 而不是 header("Location: page.php");。是的,一个空间会有所作为!

答案 4 :(得分:0)

我有同样的事情发生。在显示器上反复敲击我的头后,它不是标题(“Location:myPage.php”);被破坏的线 - 这是破坏了myPage.php!尝试重定向到另一个页面。我希望我能节省别人的时间