我有以下问题。
我有一个网站,对于目录/members 和/admin,我有一个 .htaccess,它强制这些 URL 转到 https:// 所有其他 URL 都强制转到正常的 https://
现在,对于 https://的/members,我在页面中引用了导入到页面中的/js/script.js,但是当然这个目录/js 被强制为正常的 http://而页面显示在https://
如果 Internet Explorer 用户想要在安全页面中查看非安全内容,则会显示一个弹出窗口,如果他们单击"is",就可以了。如果他们点击否,则 javascript 不起作用。
/js 用于普通 http://网站和/members 安全网站。/images 目录也是如此
所以我不确定如何解决这个问题。除了说/js 和/images 可以是 https 或 http。但是我不知道如何在 htaccess 文件中配置它。
如有任何帮助,我们将不胜感激!
这是我现在使用的 htaccess 文件:
#Turn SSL on everything, except members and admin
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} ^(/members|/admin)
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Turn SSL off everything, except members and admin
RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !^(/members|/admin)
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
最佳答案
有很多方法。这里只是其中的一部分。
第 1 条。在您的规则之前添加:
# do not do anything for js/css/image files
# (will affect ALL such files in ALL folders)
RewriteRule \.(css|js|jpe?g|gif|png|ico)$ - [L]
上面的规则将保留所有 css/js/image 文件(站点上的任何位置)的协议(protocol)
第 2 条在您的规则之前添加:
# do not do anything to any files in css/js/images folders
RewriteRule ^(css|js|images)/ - [L]
上述规则将保留 css/js/image 文件夹中所有文件的协议(protocol)(例如 example.com/js/main.js
、example.com/images/logo .png
甚至 example.com/js/compress.php
如果你愿意——你可以将它们组合成一个规则(更具体地说)——但这是不必要的(从我的角度来看)。
关于.htaccess - https 和 http 组合 .htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10174278/