问题:
正常web端均会支持 http跟https,可如果后台统一采用https的请求,那么会造成一个问题就是http访问时,cookie设置失败,导致登录过后,cookie失效仍然提示需要登录。
造成这个问题的本质原因是:
https访问的时候,返回的cookie设置了secure=1,
切换成http访问的时候, 这个时候不能操作那个cookie了,导致这个时候服务端返回的cookie不生效。导致登陆不了。
解决方式:
通过配置nginx 采用 http重定向转发到https,即当浏览器请求http时,会跳转到对应的https。
301永久跳转
找到域名配置文件的Server或者location段,适当位置添加下面代码:
rewrite ^/(.*)$ http://www.server110.com/$1 permanent;
301代码详解:
rewrite #重写跳转规则
http://www.server110.com/$1 #跳转到的地址,后面的$1代表链参数也一起跳转。比如访问server110.com/123就会跳转到www.server110.com/123 没有的话。就会直接跳转到www.server110.com
permanent #301永久跳转
302临时跳转
理解了上面的301跳转就更好理解下面的302跳转,就一个参数的差别。
找到域名配置文件的Server或者location段,适当位置添加下面代码:
rewrite ^/(.*)$ http://www.server110.com/$1 redirect;
302代码详解:
rewrite #重写跳转规则
http://www.server110.com/$1 #跳转到的地址,后面的$1代表链参数也一起跳转。比如访问server110.com/123就会跳转到www.server110.com/123 没有的话。就会直接跳转到www.server110.com
redirect #302临时跳转
添加完后,重启nginx,没有报错的话,就成功了。