我正在使用通过HTTPS加载的网页,其中包含相对网址,例如:
<link rel="stylesheet" href="/css/styles.css">
<script src="/js/script.js">
但是,浏览器拒绝加载这些资产,抛出错误,例如:
混合内容:&#39; https://www.example.com/search&#39;是通过HTTPS加载的,但请求了一个不安全的脚本......
我怀疑这个页面的独特之处可能是使问题复杂化,因为它在Apache中被设置为反向代理:
<VirtualHost _default_:443>
ProxyRequests off
ProxyPass /search http://10.0.0.50/search
ProxyPassReverse /search http://10.0.0.50/search
...
</VirtualHost>
<Location /search/>
ProxyPassReverse /search
</Location>
此外,我有一个重写规则将所有http流量重定向到https;但这并不会影响浏览器加载资产的倾向:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
父页面的HTML完全在初始请求中提供,不涉及iframe或重定向。
为什么浏览器根据父页面的方案加载相对URL? 如果/如何代理配置会改变这种行为,对我来说没有意义。
此外,我是否可以使用mod_filter重写通过代理服务的文档中的URL?
任何想法都会非常感激!