[英]Nginx force SSL (https) with cookie forwarding
我正在通过以下方式强制nginx
的虚拟主机使用SSL
:
if ($ssl_protocol = "") {
rewrite ^ https://www.mydomain.com$request_uri? permanent;
}
问题是,如果用户使用会话(cookie)登录,然后打开一个新选项卡,然后转到http://www.mydomain.com
该方法可以正常工作并转发到https
,但是会话丢失。 我认为是因为cookie没有通过nginx的重写规则转发。
有没有办法转发cookie并运行重写?
谢谢。
Cookies与重定向无关。 发送“重定向”消息的服务器与此无关。 纯粹由网络浏览器决定是否根据给定的请求发送cookie。 这基于在cookie上设置的属性,例如Path,Domain,Secure和HttpOnly。 我想您会发现,用户Cookie上的属性的设置方式告诉浏览器在访问新URL时不要发送它们。 例如,如果您要重定向到其他域,则肯定会发生这种情况。
解决该问题的方法是将这两个问题分开,保持会话和身份验证。 然后,您可以使会话ID不受保护,仅用于维护会话,并使用单独的cookie来检查登录状态。
如果网站使用HTTP和HTTPS混合,则ID将在URL中以纯文本格式传输
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.