【问题标题】:Nginx loses POST variable with http -> https redirectNginx 使用 http -> https 重定向丢失 POST 变量
【发布时间】:2017-01-09 20:37:29
【问题描述】:

我有一个使用重定向方法的网站设置...

server {
    listen 80;
    server_name example.org;
    return 301 https://$server_name$request_uri;
}

但是,当页面发布到“http://example.com”时,它会重定向到“https://example.com”,并且在此过程中,它会删除 POST。

我知道它是这样工作的,但是我需要以某种方式执行以下操作之一...

  • 从 http -> https 进行重定向,同时保持 POST 变量不变
  • 在重定向期间将 POST 变量转换为 GET 变量(可以正常工作)
  • 重定向除一个文件夹之外的所有内容

有什么建议吗?我有点迷茫……

【问题讨论】:

    标签: apache .htaccess redirect nginx https


    【解决方案1】:

    308 重定向是一种解决方法,但解决方案是直接 POST 到 https:

    • 通过 http 发帖,您的帖子数据不安全
    • 重定向使进程变慢
    • 如果您从 https 网页发布到 http,浏览器可能会向用户显示警告

    【讨论】:

    • 当然更愿意这样做......不幸的是,问题是它是一个旧的 flash swf 文件(一个在线课程),它发布到 http/:80 url,不幸的是我无法控制它。我使用 308/307 而不是 301 修复了它。谢谢!
    【解决方案2】:

    如果您愿意放弃“永久”重定向状态,我相信 307 重定向而不是 301 将保留 POST。实际上有一个永久重定向并保留帖子,即 308,但尚未被浏览器和其他用户代理很好地采用。

    【讨论】:

      【解决方案3】:

      这是一个常见问题,没有简单的解决方案。

      这里有一些类似问题的答案

      Apache 301 Redirect and preserving post data

      Is it possible to redirect post data?

      也许其中一个答案可以帮助解决您的问题

      【讨论】:

        猜你喜欢
        • 2019-01-08
        • 1970-01-01
        • 2018-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-16
        • 2011-03-29
        • 2018-01-05
        相关资源
        最近更新 更多