我要把毛巾扔进去。有人可以帮我解决这个问题。 在我的本地开发服务器上,这部分PHP可以正常工作,它只是通过从一些变量构造URL来进行重定向。 因此,我按预期重定向到此页面。
$status = "0"; //unsubscribed
header('Location:http://www.skandium.com/manage-your-mailing-list.asp?status='.$status);
die();
在生产服务器上,我只得到一个空白页。 我知道PHP页面本身可以正常工作,因为直到此行之前发生的所有其他事情都可以正常工作。 我可以用简单的echo
替换此行,并且可以看到URL也正确。
其他详情:
编辑:情节变厚
在新页面中单独使用以下代码可以在生产环境中正常工作。 仍然没有解释为什么上面的代码在本地而不是在生产中工作。 我似乎已排除的一切只是标头重定向语句本身不是罪魁祸首。
<?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();
?>
确保php标记前没有空格
尝试这个..
header('Location: http://www.abc.com/manage-your-mailing-list.php?status='.$status)
我只是在冒号(:)和url之间添加了一个空格。.我不知道这是发生在其他人身上的,但是有时这种事发生在我身上,有时无论出于什么原因都可以使用。
另外,您是否尝试过相对路径? 还是在其他页面上,我的意思是“页眉位置”在其他地方有效吗? 还是仅在此脚本上发生?
您可以尝试的一些方法是:
headers_sent()
是否为true
error_reporting(E_ALL)
和ini_set('display_errors', 1)
UTF-8文件编码了吗? 任何输出都可能阻止代码执行,包括BOM。 也许未明确设置编码,但是您的开发机采用了UTF-8(并忽略了标记),而生产服务器则没有。
这些都不起作用。
我最终回显了meta
重定向。
我也可以回应一个javascript location.replace