SSL 用于相对路径?

Alv*_*aro 3 apache .htaccess ssl https web

我注意到,当使用 HTTPS 访问站点时,当尝试从相对路径包含 CSS 或 JS 文件时,我会在 JS 控制台中收到错误,如下所示:

<link rel="stylesheet" type="text/css" href="css/demo.css?id=14" />
Run Code Online (Sandbox Code Playgroud)

混合内容:“ https://mysiste.com/ ”页面是通过 HTTPS 加载的,但请求了不安全的样式表“ http://mysiste.com/css/demo.css?id=14 ”。该请求已被阻止;内容必须通过 HTTPS 提供。

这种情况下的理想解决方案是什么?

  • 我是否应该强制将所有 HTTP 访问重定向到 HTTPS?
  • 或者有没有办法告诉服务器使用 HTTPS 提供所有相对路径?

Ste*_*ich 5

相对链接将使用基本 URL 中的协议和主机。基本 URL 通常是可以在 URL 栏中看到的 URL。但可以使用base 标记显式更改基本 URL 。

这意味着,如果您的页面中设置了一个以 http 作为协议的基本 URL,即使您使用 https 访问了该站点并且引用是相对的,它仍将使用 http 而不是 https,即如下所示:

<base href="http://example.com/">
Run Code Online (Sandbox Code Playgroud)

要修复此问题,请删除基本标签或将其更改为使用 https 而不是 http:

<base href="https://example.com">
Run Code Online (Sandbox Code Playgroud)