Nginx失去POST变量与http - > https重定向

时间:2016-09-01 20:27:54

标签: apache .htaccess redirect nginx https

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

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变量(可以正常工作)
  • 重定向除一个文件夹以外的所有内容

有什么建议吗?我有点失落......

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:3)

308重定向是一个修复,但解决方案是直接POST到https:

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

答案 2 :(得分:2)

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

这里有类似问题的答案

Apache 301 Redirect and preserving post data

Is it possible to redirect post data?

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