【问题标题】:SSL for relative paths?SSL 相对路径?
【发布时间】:2017-10-14 11:39:10
【问题描述】:

我注意到在使用 HTTPS 访问网站时,当尝试从相对路径中包含 CSS 或 JS 文件时,JS 控制台中出现错误,例如:

<link rel="stylesheet" type="text/css" href="css/demo.css?id=14" />

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

这种场景的理想解决方案是什么?

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

【问题讨论】:

  • 它应该使用原始 URL 中的协议和主机(即在这种情况下为 https://mysiste.com/)作为基础,除非您使用 base tag 明确设置了不同的基础。检查此标记的代码并将其删除或将其设置为 https URL。
  • 基本标签!而已!!谢谢你!请将其添加为答案,我会接受!

标签: apache .htaccess ssl web https


【解决方案1】:

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

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

<base href="http://example.com/">

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

<base href="https://example.com">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-11
    • 2010-09-15
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2010-12-17
    • 2018-06-09
    相关资源
    最近更新 更多