我无法弄清楚可能导致此错误的原因。我的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.
答案 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!尝试重定向到另一个页面。我希望我能节省别人的时间