Nginx:PHP发送的位置头重定向,不改变域

Nginx:PHP发送的位置头重定向,不改变域,php,redirect,nginx,Php,Redirect,Nginx,我这里有个奇怪的问题,找不出原因。我在nginx服务器上有一个php脚本,它会触发重定向到同一服务器上的不同(子)域: 例如: foo.domain.com/redirect.php 标题(“状态:301”); 标题(“位置:http://www.domain.com/new_url/"); 结果是我被重定向到: foo.domain.com/new\u url 虽然我的响应标题看起来不错,但域根本没有改变 有什么想法吗?在iframe中检查您的站点 一些主机可以这样做,如果它是免费的主机,那么

我这里有个奇怪的问题,找不出原因。我在nginx服务器上有一个php脚本,它会触发重定向到同一服务器上的不同(子)域:

例如: foo.domain.com/redirect.php 标题(“状态:301”); 标题(“位置:http://www.domain.com/new_url/");

结果是我被重定向到: foo.domain.com/new\u url

虽然我的响应标题看起来不错,但域根本没有改变


有什么想法吗?

在iframe中检查您的站点


一些主机可以这样做,如果它是免费的主机,那么所有这些都是因为一些域设置允许将站点包含在iframe中,这将导致正确描述您的站点

检查您是否将站点包含在iframe中


一些主机可以这样做,如果它是免费的主机,那么所有这些都是因为一些域设置允许站点包含在一个iframe中,这将导致正确的描述

好的,我终于找到了问题的原因。Nginx和PHP都没有引起这些问题。我的Web服务器在一个运行Pound的负载平衡器后面


Pound有一个功能,可以在头重定向中重写域(默认情况下启用)。我们现在关闭了此功能,所有重定向最终都能正常工作

好了,我终于找到了麻烦的原因。Nginx和PHP都没有引起这些问题。我的Web服务器在一个运行Pound的负载平衡器后面


Pound有一个功能,可以在头重定向中重写域(默认情况下启用)。我们现在关闭了此功能,所有重定向最终都能正常工作

您是否在
标题()之后插入
die()
?您是否确定这不仅仅是浏览器中显示的地址栏?当它遇到301时,这并不需要更改,只是一个不相关的便笺,但您不需要header()调用来发送301状态,您可以执行:
header('Location:http://www.domain.com/newloc,对,301)是的,脚本在之后消失了,并不是浏览器地址栏没有正确更改。正如我上面描述的那样。。重定向部分工作,它只是坚持到同一个域。哦。。。感谢您的建议:)您是否在
标题()之后插入
die()
?您是否确定这不仅仅是浏览器中显示的地址栏?当它遇到301时,这并不需要更改,只是一个不相关的便笺,但您不需要header()调用来发送301状态,您可以执行:
header('Location:http://www.domain.com/newloc,对,301)是的,脚本在之后消失了,并不是浏览器地址栏没有正确更改。正如我上面描述的那样。。重定向部分工作,它只是坚持到同一个域。哦。。。谢谢你的建议:)它不是在iframe中,也不是廉价的主机。这是一个更大的集群,在负载均衡器后面有两台服务器。很抱歉,这是唯一一次发生在meIt上的想法,它不在iframe中,也不在廉价的主机中。这是一个更大的集群,在负载均衡器后面有两台服务器。很抱歉,这是我唯一一次想到的