注意:类似的问题但这是关于 Apache 的。
下面的代码
<?php
echo '.';
header('Location: http://stackoverflow.com');
在 nginx 0.7.67 下完全“工作”,其中“工作”表示 php 重定向工作正常,错误日志中没有错误或显示.
。
我如何强制 nginx 或 php-fpm 发出PHP Warning: Cannot modify header information - headers already sent by
警告?
答案1
您应该检查output_buffering
php.ini 文件中参数的值。
答案2
我遇到了同样的问题,我发现这是因为header("Status: 200 OK", false, 200);
在重定向的标头之前有一个。所以我添加了一个条件,如果我知道必须重定向,则不显示标头 200:
if(!isset($_GET['utm_source'])) { //Header will be Redirect 301 from global_cookies.inc.php
header("Status: 200 OK", false, 200);
}
笔记:使用 Apache 时我没有遇到这个问题,甚至可以在标头 200 之后重定向。