Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript http到https-使浏览器为http URL请求相应的https URL,而无需编辑所有页面并手动将所有URL更改为https?_Javascript_Https_Mixed Content - Fatal编程技术网

Javascript http到https-使浏览器为http URL请求相应的https URL,而无需编辑所有页面并手动将所有URL更改为https?

Javascript http到https-使浏览器为http URL请求相应的https URL,而无需编辑所有页面并手动将所有URL更改为https?,javascript,https,mixed-content,Javascript,Https,Mixed Content,我有兴趣将我的整个站点从http切换到https 我担心的是,我有一些使用绝对http URL的内容 我需要编辑每个页面,以便将这些URL更改为相对URL,但这可能需要一段时间才能完成 我想知道的是,是否有一种方法可以通过Google标记管理器使用Javascript将本地绝对URL重新写入HTTPS而不是HTTP 如果这是可能的,它可以作为一个永久性的解决方案吗?当JavaScript被执行时,有问题的资源可能已经被过度加载了 您可以简单地通过代码查找http://的任何实例,并用URL或相对

我有兴趣将我的整个站点从http切换到https

我担心的是,我有一些使用绝对http URL的内容

我需要编辑每个页面,以便将这些URL更改为相对URL,但这可能需要一段时间才能完成

我想知道的是,是否有一种方法可以通过Google标记管理器使用Javascript将本地绝对URL重新写入HTTPS而不是HTTP


如果这是可能的,它可以作为一个永久性的解决方案吗?

当JavaScript被执行时,有问题的资源可能已经被过度加载了

您可以简单地通过代码查找
http://
的任何实例,并用URL或相对URL替换这些实例

如果您的内容更复杂(例如,分布在多台机器上),您可以使用镜像脚本(如)下载整个页面的静态版本,并进行搜索


然后,设置HTTPS(首先只为您设置,然后为所有测试人员设置),并检查是否一切正常。一旦你确定这是事实,允许每个人都通过HTTPS。最后,稍后,考虑将HTTP重定向到HTTPS并实现,和./P>< P>一个要考虑的解决方案是.

升级不安全请求
指令指示用户代理 将站点的所有不安全URL(通过HTTP提供的)视为 虽然它们已被安全URL(那些通过 HTTPS)。本指令适用于具有大量 需要重写的不安全的旧URL

这相当于配置您的Web服务器,使您网站上的所有页面都使用以下标题:

Content-Security-Policy: upgrade-insecure-requests
因此,添加该标题的效果将是:对于站点上提供
https
URL的任何页面,每当浏览器在其中一个页面中看到嵌入式(子)资源的
http
URL时,无论是样式表、脚本、图像、视频的URL,还是浏览器将自动(透明)显示的任何内容请尝试从相应的
https
URL获取资源

有关更多详细信息,请参见规范

2018-05-11更新

现在,所有主要浏览器引擎(包括Edge 17+和Safari 10.3+)都支持
升级不安全请求
指令:

现在使用它的缺点是,到目前为止,它只在Firefox()和Chrome中受支持。但它也:

  • 有一个

顺便说一句,我在W3C工作,在那里我们-而且由于W3C有成千上万(可能数百万)的页面,其中包含嵌入式子资源的
http
URL,我们实现这一点的部分方式是通过在整个站点上提供
内容安全策略:升级不安全请求
标题


本文提供了有关部署详细信息的更多信息。

为什么不在文件目录中使用搜索并替换为regexp?许多服务都是通过常规http或SSL/https提供的。您可以通过省略协议部分来克服其中一些问题,并编写url,如:
//somedomain.com/../…
问题:1)如何将其添加到网站?像这样
2)如果我错了,请纠正我的错误,但这不适用于所有浏览器?您不能使用
meta
元素或特定文档HTML中的任何其他标记;相反,您需要配置Web服务器以将其作为HTTP头发送。是的,它还不能在所有浏览器中工作;目前只有Chrome和Firefox支持。谢谢。这就是我认为的问题所在。