我准备扔进去。有人可以帮我解决这个问题。 在我的本地开发服务器上,这个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();
?>
答案 0 :(得分:3)
确保在php标记
之前没有空格答案 1 :(得分:1)
试试这个..
header('Location: http://www.abc.com/manage-your-mailing-list.php?status='.$status)
我只是在冒号(:)和网址之间添加一个空格。 我不知道这发生在其他人身上,但有时这种事情发生在我身上,有时无论出于何种原因这都有效。
另外,你试过相对路径吗? 或者在其他页面,我的意思是“标题位置”在其他地方有效吗? 或者它只发生在这个脚本上?
答案 2 :(得分:1)
您可以尝试的一件事是:
headers_sent()
是否为true
error_reporting(E_ALL)
和ini_set('display_errors', 1)
答案 3 :(得分:0)
文件是UTF-8编码的吗? 任何输出都可以阻止执行代码,包括BOM。也许编码没有明确设置,但你的开发机器假设UTF-8(并忽略了标记)而你的生产服务器没有。
答案 4 :(得分:0)
这些都不起作用。
我最终回复了meta
重定向。
我也可以回复javascript location.replace