【发布时间】:2011-08-17 08:40:20
【问题描述】:
这是一个非常奇怪的问题。在我的代码中,我有一个可以在我的本地服务器上完美运行的重定向。
header("location:/sign-up-success");
当我推送到生产环境时,它只是不会重定向。有没有我遗漏的设置?
我什至尝试过:
header("Location: https://www.myurl.com/sign-up-success");
它似乎只是跳过了重定向。有什么想法吗?
【问题讨论】:
-
检查您的错误日志中是否有任何 PHP 警告/错误?您的生产服务器可能不会将它们直接报告给浏览器。
-
标头重定向应该在重定向后
exit,因此“它应该[不] 跳过重定向”而是直接死掉(如果做得对的话)。此外,您可能在本地服务器上启用了output_buffering,但在生产环境中未启用。尝试在本地机器上关闭它(以及启用@Amber 建议的错误)。 -
@Amber - 错误日志中没有任何错误。这很奇怪。
-
@netcoder - output_buffering 在我的生产服务器上关闭。我继续打开它并修复它!谢谢! (特别是对于那些有类似问题的人,在我本地机器上的 php.ini 文件中,我有“output_buffering = 4096”,而在生产服务器上它被设置为“output_buffering = off”。打开它可以修复它和一些还有其他问题。
-
@Jason,您可以自己将其发布为答案并将其选为正确的解决方案。