所以最奇怪的事情发生了,老实说我很难过。 我认为我不需要发布代码示例,我会告诉你原因。
我在我的localhost上运行了一个PHP header("location:blah.php")
,它运行正常。
当我将所有内容迁移到我的1and1
主机帐户时,标头标签根本不起作用。这显然与来源无关。
当我把它放在我的其他主机上时,为什么它不起作用的任何想法?
答案 0 :(得分:3)
尝试使用绝对URI,而不是相对的URI:
header("Location: http://yourhost.com/blah.php");
您可以参考http://php.net/manual/en/function.header.php 它说:
HTTP / 1.1需要绝对URI作为»Location的参数:包括方案,主机名和绝对路径,但某些客户端接受相对URI。您通常可以使用$ _SERVER ['HTTP_HOST'],$ _SERVER ['PHP_SELF']和dirname()自己创建一个相对的URI
顺便说一下,确保在header()
通话之前没有发送任何输出。甚至不是空白。
答案 1 :(得分:2)
error_reporting(E_ALL);
if(!headers_sent()){
header("location:blah.php");
exit("Headers aren't set");
} else{
exit("Headers already sent");
}
试试.. 如果发送标题,您将获得第二个mesasge。 如果未发送标题,则必须重定向,否则您将收到第一条消息。
如果发送它们你必须找到确切的位置..通常php错误报告告诉你。