我有以下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正在加载我怎样才能修改我的htaccess来安全地加载这些内容呢?
注意,图片和js的文件夹是
/js
/images
和安全内容从/ssl
提供谢谢
添加到标题部分
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
此元标签将自动将所有http请求升级为https请求。但是,您的图像必须在https中可用,否则,它将不会显示(忽略)。这是修复受保护页面中混合内容的最快方法。
当你浏览一个包含不安全内容的安全网页时,比如这个例子(g图像),浏览器不发送referrer头,所以没有服务器端解决方案来找出这是从安全网页请求与否?
您必须为这些文件使用相对路径以确保安全!
你可以防止重定向,为图像和js文件夹,把它放在你的htaccess:
的顶部RewriteRule ^(js|images)/ - [L]
还要确保只使用相对或根相对(或协议相对)url来引用图像和javascript文件。