PHP标题重定向不适用于生产,空白页
我正要认输。有人能帮我弄清楚吗。 在我的本地开发服务器上,这一点PHP工作得很好,它只是通过用一些变量构造url来执行重定向。所以我像预期的那样被重定向到这个页面PHP标题重定向不适用于生产,空白页,php,iis,iis-7,fastcgi,Php,Iis,Iis 7,Fastcgi,我正要认输。有人能帮我弄清楚吗。 在我的本地开发服务器上,这一点PHP工作得很好,它只是通过用一些变量构造url来执行重定向。所以我像预期的那样被重定向到这个页面 $status = "0"; //unsubscribed header('Location:http://www.skandium.com/manage-your-mailing-list.asp?status='.$status); die(); 在生产服务器上,我只得到一个空白页。我知道PHP页面本身正在工作,因为在这行之前发
$status = "0"; //unsubscribed
header('Location:http://www.skandium.com/manage-your-mailing-list.asp?status='.$status);
die();
在生产服务器上,我只得到一个空白页。我知道PHP页面本身正在工作,因为在这行之前发生的所有其他事情都可以正常工作。我可以用一个简单的echo
替换这一行,并且可以看到URL也是正确的
其他详细信息:
- 托管在windows机箱上(dev也是windows)
- 通过FASTCGI运行相同的PHP版本
<?php
//test.php
//prevent page caching
header("Cache-Control: no-cache");
header("Expires: -1");
$status = "0"; //unsubscribed
header('Location:http://www.abc.com/manage-your-mailing-list.php?status='.$status);
die();
?>
文件是UTF-8编码的吗?任何输出都可能阻止执行代码,包括BOM。可能编码没有明确设置,但您的开发计算机采用UTF-8(并忽略了标记),而您的生产服务器没有。文件是否已编码UTF-8?任何输出都可能阻止执行代码,包括BOM。可能编码没有显式设置,但是您的开发机器采用UTF-8(并忽略了标记),而您的生产服务器没有。请确保php标记前面没有空格,请确保php标记前面没有空格
header('Location: http://www.abc.com/manage-your-mailing-list.php?status='.$status)
我只是在冒号(:)和url之间添加了一个空格。。
我不知道这发生在其他人身上,但有时这种事情发生在我身上,有时出于任何原因都会发生
另外,您是否尝试过相对路径?
或者在其他页面,我的意思是“标题位置”在其他地方有效吗?
或者它只发生在这个脚本上?试试这个
header('Location: http://www.abc.com/manage-your-mailing-list.php?status='.$status)
我只是在冒号(:)和url之间添加了一个空格。。
我不知道这发生在其他人身上,但有时这种事情发生在我身上,有时出于任何原因都会发生
另外,您是否尝试过相对路径?
或者在其他页面,我的意思是“标题位置”在其他地方有效吗?
或者它只发生在这个脚本上?您可以尝试以下几点:
- 在发送重定向标头之前,检查
是否为标头\u sent()
true
- 设置
和error\u reporting(E\u ALL)
ini\u Set('display\u errors',1)
- 使用firebug检查发送到浏览器的标题(如果有)
- 在发送重定向标头之前,检查
是否为标头\u sent()
true
- 设置
和error\u reporting(E\u ALL)
ini\u Set('display\u errors',1)
- 使用firebug检查发送到浏览器的标题(如果有)
- 您可以尝试以下几点:
- 这些都不起作用
我最后回应了一个
meta
重定向
我还可以回显javascript位置。替换这些都不起作用
我最后回应了一个meta
重定向
我还可以回显javascript位置。替换是否尝试将重定向更改为完整的http路径而不是相对路径页面名称?是否可以访问错误日志?他们提到了什么?在页面的开头尝试在php标记中添加“ob_start();”。希望这能解决您的问题。@Arjan我应该查看哪些日志文件?@balanv'ob_start();'导致页面根本不加载,浏览器加载指示器一直在运行…您是否尝试将重定向更改为完整http路径而不是相对路径页面名称?您是否可以访问错误日志?他们提到了什么?在页面的开头尝试在php标记中添加“ob_start();”。希望这能解决您的问题。@Arjan我应该查看哪些日志文件?@balanv'ob_start();'导致页面根本不加载,浏览器加载指示器一直在运行……如何验证这一点?我正在使用记事本+,在“编码”菜单选项下,我看到选中了“ANSI编码”。还有其他选项,如“UTF-8无BOM”等。UTF-8本身没有BOM。我不知道如何在记事本++中将编码更改为UTF-8;您应该参考应用程序的文档。(此外,还应更改包含的编码)。好的,我已将页面和任何包含保存为UTF-8,但其行为仍然相同。如何验证这一点?我正在使用记事本+,在“编码”菜单选项下,我看到选中了“ANSI编码”。还有其他选项,如“UTF-8无BOM”等。UTF-8本身没有BOM。我不知道如何在记事本++中将编码更改为UTF-8;您应该参考应用程序的文档。(另外,includes的编码也应该更改)。好的,我将页面和任何includes保存为UTF-8,它的行为仍然相同。