1

这真的很奇怪..我在文件中有以下重定向:

header('Location: http://google.com');

它不起作用。页面加载并且用户没有被重定向。但是,如果我在该行下方添加 die() 语句,如下所示:

header('Location: http://google.com');
die('what the heck is going on here?');

然后重定向神奇地开始工作!

我完全不知道为什么会发生这种情况,而且我不知道如何调试它。

任何人都可以给我任何建议吗?

4

2 回答 2

7

您应该在发送位置标头后退出。发送任何标头都不会影响脚本的流程,因此它之后的任何代码仍会执行。如果有任何事情导致设置不同的响应状态代码,则根本不会发生重定向。

Location头本身什么也不做——只有与正确的 30x 响应代码一起,它才会导致重定向。PHP 在发送Location标头时手动设置此响应代码,但您的代码可能会修改它。

于 2012-05-26T17:54:54.383 回答
2

可能您的脚本在标头调用之后没有结束。确保结束脚本。

于 2012-05-26T17:57:16.023 回答