因为业务需求,必须实现 https 跳到 http。。 求教。
![]() | 1 qcloud 2018-05-10 16:30:23 +08:00 via iPhone 不跳 https 不就行了 |
![]() | 2 yimaneilicj OP 在 Safari 中有的时候会莫名其妙的加上 在 http 协议下下加载了 https 协议的资源是不是就会自动加上? @qcloud |
![]() | 3 misaka19000 2018-05-10 16:32:12 +08:00 做个重定向不就行了 |
![]() | 4 qcloud 2018-05-10 16:34:18 +08:00 via iPhone @yimaneilicj 不会,如果 https 协议中有 http 链接会报错 |
5 rayc9223 2018-05-10 16:34:21 +08:00 ![]() listen 443 ssl; rewrite ^ http://$http_host$request_uri? permanent; |
![]() | 6 laudukang 2018-05-10 16:42:41 +08:00 一页 50 条帖子,完全可以自行 Google 的问题占了其中一条 |
![]() | 7 yongjing 2018-05-10 16:43:13 +08:00 |
![]() | 8 yimaneilicj OP @laudukang 自行股沟了一番,最后没有找到合适的解决办法才来询问大家的。 |
![]() | 9 yimaneilicj OP |
![]() | 10 yhxx 2018-05-10 16:47:32 +08:00 直接 return 一个 301 试试? |
![]() | 11 pexcn 2018-05-10 17:19:11 +08:00 301 重定向 ``` server { listen 80; server_name <domain_name>; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name <domain_name>; # ...... } ``` |
![]() | 12 pexcn 2018-05-10 17:20:41 +08:00 看错了,应该是 ``` server { listen 443 ssl http2; server_name <domain_name>; # ...... return 301 http://$server_name$request_uri; } server { listen 80; server_name <domain_name>; # ...... } ``` |
![]() | 13 cpdyj 2018-05-10 17:22:44 +08:00 via Android ![]() 你的 HTTPS 是不是开了 HSTS ? |
14 edsion996 2018-05-10 17:23:04 +08:00 ![]() |
![]() | 15 yimaneilicj OP @zjb861107 好的,多谢指点! |
![]() | 16 chinvo 2018-05-10 18:22:08 +08:00 via iPhone 什么业务需求这么奇葩 |
![]() | 17 riyoukakan 2018-05-10 18:32:44 +08:00 if ($server_port ~ 443){ rewrite ^(/.*)$ http://$host$1 permanent; } |
![]() | 18 yimaneilicj OP @cpdyj 一语点醒梦中人。。。就是 nginx 在配置的时候加了 [add_header Strict-Transport-Security max-age=15768000;] 导致。。Safari 每次输入域名都会跳到 https 的协议,注释掉就好了。那么问题来了,之前带着这个 header 访问过 https 协议的浏览器中应该是存有这个 header 信息的吧,那么怎么清理掉呢? |
![]() | 19 sean328 2018-05-10 19:14:27 +08:00 做一个永久的 rewrite 就行,这个问题百度就可以解决吧 |
20 MonoLogueChi 2018-05-10 19:28:14 +08:00 via Android @yimaneilicj 这个应该无解,等过期吧 |
21 paranoiagu 2018-05-10 19:37:30 +08:00 via Android @yimaneilicj 清客户端缓存即可。 |
![]() | 22 oh 2018-05-10 19:57:21 +08:00 via iPhone ![]() @yimaneilicj 加个 Strict-Transport-Security max-age=0 看看能不能覆盖掉 |
![]() | 23 yimaneilicj OP |
![]() | 24 yimaneilicj OP @chinvo 前端人员说 https 和 http 两种协议下,在 local 什么的本地存储中数据不能共用。 |
![]() | 25 chinvo 2018-05-10 20:20:17 +08:00 via iPhone ![]() @yimaneilicj #24 那全跳去 https 啊 |
26 owt5008137 2018-05-10 21:34:18 +08:00 via Android if ($scheme = https) { return 301 http://$server_name$request_uri; } |
![]() | 27 pandago 2018-05-10 21:34:25 +08:00 via iPhone @yimaneilicj localstorage 跨域 |
![]() | 28 IvanLi127 2018-05-11 12:50:58 +08:00 via Android @yimaneilicj 凉了 叫访问过的人都清理下浏览器吧。。。 |
29 zhuweiyou 2018-05-11 14:13:49 +08:00 开了 HSTS ?凉了。换域名吧 |