<script type="text/javascript" src="http://www.demo.com/js/xx.js"></script>
.logo a{display: block;float: left;background: url( http://www.demo.com/images/logo.png) no-repeat 0 0px;height: 50px;width: 170px;}
<img src="http://www.demo.com/images/logo.jpg"></a>
<img src="https://example.com/ququ.jpg" />
=>
<img src="//example.com/static//ququ.jpg" />
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> //站点内的 HTTP 请求,都会 HTTPS 的方式发起
大家还有简单的方法吗?
1
zachlhb 2020-08-25 10:04:04 +08:00 via Android
静态资源开头不要写协议,只需 //xxx.com/xxxx.jpg 就行了,会自动适配当前访问的协议类型
|
2
CallMeReznov 2020-08-25 10:05:01 +08:00
相对路径+不要 http 的外部连接就行了呀
|
3
also24 2020-08-25 10:05:55 +08:00
建议修改链接,用 sed 或者找个主流的文本编辑器批量改一下就好
|
4
itll OP @zachlhb
省略 URL 协议有个风险点:个别移动网络提供商篡改页面时,会将这种写法的 URL 改坏,导致资源无法访问。详见《诡异问题排查之「 DataURI 引发的血案」》这篇文章。 https://imququ.com/post/sth-about-switch-to-https-3.html |
5
ysc3839 2020-08-25 10:09:31 +08:00
meta http-equiv 的作用是通过 HTML 设置一些原本需要放在 HTTP 响应头中的属性,而不需要对服务器本身进行设置。
但是在能调整服务器设置的情况下,就没必要使用 meta http-equiv 了,直接在 HTTP 响应头中设置即可。 |
7
yuzo555 2020-08-25 10:10:52 +08:00
实在懒惰的话可以在 IIS 中配置响应头:
``` Content-Security-Policy: upgrade-insecure-requests; ``` 最好还是找个文本替换工具批量替换下。 |
9
Mutoo 2020-08-25 10:12:34 +08:00 1
sublime 或者 vsc 都支持全目录查找替换的,用正则一下就搞定。不放心可以版本控制,commit 之前目测一下。500 个一点也不多。
|
10
ysc3839 2020-08-25 10:15:52 +08:00
@itll 最好确认一下,响应头中是否含有 Content-Security-Policy ?浏览器还会通过 http 请求吗?
如果确认 Content-Security-Policy 已经生效,那可能是 Chrome 的限制吧,必须把链接改掉才不提示。 |
11
wangkun025 2020-08-25 10:17:00 +08:00
我也是 sublime 文本替换。分分钟的事儿。
|
15
ysc3839 2020-08-25 10:22:39 +08:00
@itll 所以你前面说的“IIS 服务设置了”指的是什么?有试过在响应头中添加 Content-Security-Policy 吗?
|
16
itll OP @ysc3839 在 IIS 响应头中添加 Content-Security-Policy 可以,正在测试。之前以为只能 html 页面中添加
|
18
ChanKc 2020-08-25 13:17:33 +08:00 via Android
hsts ?
|
20
itll OP |
21
JooYun 2020-08-25 18:33:47 +08:00
http 协议强制 301 跳转到 https
|