因为业务需大带宽服务器求,必须实现 https 跳到 http。。 求教。
不跳 https 不就行了
在 Safari 中有的时候会莫名其妙的加上··· 在 http 协议下下加载了 https 协议的资源是不是就会自动加上?
@qcloud
做个重定向不就行了
不会,如果 https 协议中有 http 链接会报错
listen 443 ssl;
rewrite ^ http://$http_host$request_uri? permanent;
一页 50 条帖子,完全可以自行 Google 的问题占了其中一条
server {
...
return 301 http://example.com$request_uri;
}
自行股沟了一番,最后没有找到合适的解决办法才来询问大家的。
很感谢回复,我再去试试,对 nginx 还不是很在行
直接 return 一个 301 试试?
301 重定向
```
server {
listen 80;
server_name
;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name ;
......
}
```
看错了,应该是
```
server {
listen 443 ssl http2;
server_name ;
......
return 301 http://$server_name$request_uri;
}
server {
listen 80;
server_name ;
......
}
```
你的 HTTPS 是不是开了 HSTS ?
推荐可以参考这个: https://imququ.com/post/my-nginx-conf.html
好的,多谢指点!
什么业务需求这么奇葩
if ($server_port ~ 443){
rewrite ^(/.*)$ http://$host$1 permanent;
}
一语点醒梦中人。。。就是 nginx 在配置的时候加了 [add_header Strict-Transport-Security max-age=15768000;] 导致。。Safari 每次输入域名都会跳到 https 的协议,注释掉就好了。那么问题来了,之前带着这个 header 访问过 https 协议的浏览器中应该是存有这个 header 信息的吧,那么怎么清理掉呢?
做一个永久的 rewrite 就行,这个问题百度就可以解决吧
这个应该无解,等过期吧
清客户端缓存即可。
加个 Strict-Transport-Security max-age=0 看看能不能覆盖掉
感谢楼上的几位大哥的回复,十分感谢!
回去试一下这个方案是否行得通,然后回来告诉您。
前端人员说 https 和 http 两种协议下,在 local 什么的本地存储中数据不能共用。
那全跳去 https 啊
if ($scheme = https) {
return 301 http://$server_name$request_uri;
}
localstorage 跨域
凉了 叫访问过的人都清理下浏览器吧。。。
开了 HSTS ?凉了。换域名吧