1

我正在强制SSL使用虚拟主机nginx

if ($ssl_protocol = "") {
    rewrite ^ https://www.mydomain.com$request_uri? permanent;
}

问题是,如果用户使用会话(cookie)登录,然后打开一个新选项卡并转到http://www.mydomain.com此工作并转发到https,但会话丢失。我认为是因为 cookie 没有通过 nginx 的重写规则转发。

有没有办法转发 cookie 以及运行重写?

谢谢。

4

2 回答 2

1

Cookie 与重定向无关。发送“重定向”消息的服务器与它无关。纯粹是网络浏览器决定是否在给定请求上发送 cookie。这基于已在 cookie 上设置的属性,例如 Path、Domain、Secure 和 HttpOnly。我想你会发现你的用户 cookie 上的属性的设置方式告诉浏览器在访问新 URL 时不要发送它们。例如,如果您要重定向到不同的域,这肯定会发生。

于 2013-02-13T05:03:54.790 回答
0

解决这个问题的一种方法是将这两个问题分开,维护会话和身份验证。然后,您可以使会话 ID 不受保护,仅用于维护会话,并使用单独的 cookie 来检查登录状态。

如果站点使用 HTTP 和 HTTPS 混合使用,则 id 将在 URL 中以明文形式传输

于 2013-02-13T05:54:28.500 回答