【问题标题】:Header redirection doesn't work in some browsers标头重定向在某些浏览器中不起作用
【发布时间】:2015-03-17 08:06:57
【问题描述】:

我正在使用此命令重定向到另一个页面:

header('Location: \dealer\skuska\layout.php');

在 Chrome 中这可以正常工作,但在 Firefox 中它会重定向到:

http://212.5.221.26:85/dealer/skuska/actions/\dealer\skuska\index.php

为什么会发生这种情况,我该如何解决?

【问题讨论】:

  • 根据rfc2616 protocol,应该是绝对URI。相关的作品,但正如您所见,它会不一致。
  • 请检查斜杠和反斜杠。我认为路径应该有斜线。

标签: php redirect header url-redirection


【解决方案1】:

你需要像这样使用完整路径

header('Location: http://example.com/dealer/skuska/layout.php');

还将\ 更改为/

试试这个,它适用于所有浏览器。

【讨论】:

  • 是的,这行得通。但是,如果有人将站点迁移到另一台服务器怎么办?是否可以在这里使用任何全局变量?
  • 在你的配置中定义常量比如..define("CONSTANT", "example.com"); 或者使用 $_SERVER 对象来获取当前域名。
【解决方案2】:

鉴于此重定向脚本位于“dealer/skuska/actions/”中,请尝试使用正斜杠,并添加一个两点目录以向上导航一个文件夹,以重定向到“dealer/skuska/layout.php ":

header('Location: ./../layout.php');
exit;

【讨论】:

    【解决方案3】:

    如果是一次性网站,则使用绝对网址。着陆页的完整网址。

    如果您需要它在多个域上运行,请使用 ../../../ 直到到达根文件夹,然后再次添加完整路径。

    使用斜线,而不是反斜线

    【讨论】:

      【解决方案4】:

      只需使用绝对网址,然后无论您在哪里调用它,它都会将您重定向到正确的页面。 Chrome 对网络标准的限制较少,因此允许此类不适当的 url。在路径中也使用正斜杠。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-27
        • 2012-12-05
        • 2016-10-28
        • 1970-01-01
        • 1970-01-01
        • 2013-02-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多