【问题标题】:Nginx: Location header sent by PHP redirects withoung changing domainNginx:PHP 发送的位置标头重定向而不更改域
【发布时间】:2010-11-18 09:59:02
【问题描述】:

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

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

结果是我被重定向到: foo.domain.com/new_url

尽管我的响应标头看起来不错,但域根本没有改变。

有什么想法吗?

【问题讨论】:

  • 你在header()之后是die()吗?
  • 另外你确定不只是浏览器中的地址栏显示?遇到 301 时不需要更改
  • 只是一个不相关的注释,但是你不需要header()调用发送301状态,你可以这样做:header('Location: http://www.domain.com/newloc', true, 301);
  • 是的,脚本随后死了,并不是浏览器地址栏没有正确更改。就像我上面描述的那样.. 重定向部分有效,它只是坚持同一个域。
  • 哦...感谢您的建议 :)

标签: php redirect nginx


【解决方案1】:

好的,我终于找到了我的烦恼的原因。 Nginx 和 PHP 都没有引起这些问题。我的网络服务器位于使用 Pound 运行的负载均衡器后面。

Pound 具有重写标头重定向中的域的功能(默认启用)。我们现在关闭了此功能,所有重定向最终都按预期工作!

【讨论】:

    【解决方案2】:

    检查您在 iframe 中包含您的网站,

    如果免费托管,一些主机可以做到这一点,所以一些域设置允许网站包含在 iframe 中,这会导致正确的描述

    【讨论】:

    • 它不在 iframe 中,也不是廉价主机。这是一个更大的集群,在负载均衡器后面有几台服务器。
    • 对不起,这是我唯一一次发生的想法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    相关资源
    最近更新 更多