iOSwebview加载网页http链接被转到https的问题

iOSwebview加载网页http链接被转到https的问题,第1张

问题现象 webview访问http的链接被自动转到了https开发的域名中,导致页面访问失败。通过抓包工具发现该页面并未请求http开发的资源而是由iOS的webview自动转到了https开头的域名中。一经出现该问题,后续所有的http开头的相同域名下的网页都无法正常访问,需卸载重装后正常。 问题原因 该域名下存在http和https两种访问方式,如webview访问了https开头的访问链接成功后会自动保存Strict-Transport-Security
状态到浏览器缓存中,导致了后续访问http会被自动转到https。 解决方案 在请求时候添加如下参数
设置 Strict-Transport-Security 为 max-age=0

发送请求时候可以这样改

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:<yourURL>]];
[request setValue:@"max-age=0" forHTTPHeaderField:@"Strict-Transport-Security"];

也可以让服务端在nginx端的配置找到如下类似配置,将mac-age修改为0, 也就是缓存时间未0后每次再访问http就不会被自动重定向到https了。
注意修改完毕后要先访问原https的域名一次刷新下缓存时间才能生效。

$ vim /etc/nginx/conf.d/hi-linux.conf
 
server {
   listen 443 ssl;
   server_name www.hi-linux.com;
   add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
...
}
 
server {
   listen 80;
   server_name www.hi-linux.com;
   return 301 https://www.hi-linux.com$request_uri;
...
}
参照该博文方案,修改nginx配置
https://blog.csdn.net/u012560410/article/details/86489979

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/990370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存