【问题标题】:Header redirect not working correctly with nginx?标头重定向无法与 nginx 一起正常工作?
【发布时间】:2013-09-20 09:03:41
【问题描述】:

我正在尝试使用基于特定条件重定向访问者的 php 脚本。我在 apache 服务器上成功使用了该脚本,但是,我正在尝试使用 nginx 和 php-fpm,但相同的脚本似乎无法正常工作。

header("Location: $url");
exit();

奇怪的是,它似乎将我尝试重定向到的 URL 附加到原始 URL,因此它尝试转发的 URL 看起来像:

originaldomain.com/redirectdomain.com.

在将重定向域附加到原始 URL 而不是直接重定向到它之前,有没有人遇到过这种情况?

如果您需要任何进一步的信息来帮助,请告诉我。

【问题讨论】:

  • 我猜$url 不包含http://,这意味着它认为它是您域上的相对路径。

标签: php redirect nginx


【解决方案1】:

您需要确保 URL 的开头有 http://,否则它会认为它会指向您域中的路径,而不是重定向到实际站点。

【讨论】:

    【解决方案2】:

    $url 必须以 http:// 或 https:// 开头

    if (strpos($url, 'http') === 0 ) {
        $newurl = $url;
    } else {
        $newurl = "http://" . $url;
    }
    

    然后只需在您的标头请求中使用 $newurl :)

    【讨论】:

      【解决方案3】:

      如果以上答案还没有解决header重定向,你需要在你的php.ini文件中检查output_buffering on or off或者设置limit。

      output_buffering = 开启

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-18
        • 2018-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-09
        • 1970-01-01
        • 2020-09-02
        相关资源
        最近更新 更多