使用htaccess在ssl上使用不安全的内容图像和js

时间:2011-11-21 13:48:36

标签: php security .htaccess ssl

我有以下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

提供安全内容

由于

3 个答案:

答案 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文件。