我有以下htaccess文件:
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !ssl
....// lots of rewrite rules
RewriteCond %{SERVER_PORT} ^443$
RewriteCond $1 !^ssl
RewriteRule (.*) http://www.mydomain.com/$1 [R,L]
RewriteCond %{SERVER_PORT} ^80$
RewriteCond $1 ^ssl
RewriteRule (.*) https://www.mydomain.com/$1 [R,L]
基本上当我加载一个安全页面时,我会得到许多不安全的图像和js被加载 如何修改我的htacccess以安全地加载此内容。
请注意,图像和js的文件夹是
/js
/images
并从/ ssl
提供安全内容由于
答案 0 :(得分:2)
当您浏览包含非安全内容的安全网页(例如图片)时,浏览器不要发送引荐标头,因此没有服务器端解决方案可以找到这是从安全网页请求的吗?
你必须使用相对路径来安全地提供这些文件!
答案 1 :(得分:2)
将此添加到标题部分
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
此元标记会自动将所有http请求升级为https请求。但是,您的图像必须以https格式提供,否则将无法显示(忽略)。这是在安全页面中修复混合内容的最快方法。
答案 2 :(得分:1)
你可以通过将它放在htaccess的顶部来阻止图像和js文件夹的重定向:
RewriteRule ^(js|images)/ - [L]
另外,请确保仅使用相对或根相对(或协议相对)网址来引用图像和javascript文件。