我目前使用的是:
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
我真正想要的是:
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [AND]
RewriteCond %{REQUEST_URI} !\/folder/next_folder/(custom_id)
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
正如您所看到的,我正在尝试在重写为https之前添加额外条件。 对于我使用https的所有页面,但现在firefox有一个更新,并给出了混合内容的问题(当加载使用http://而不是https://的iframe时):
https://blog.mozilla.org/security/2013/05/16/mixed-content-blocking-in-firefox-aurora/
这就是为什么我需要使用https排除几页://注意我删除了www。太
我尝试了不同的东西,但仍然遇到错误,或者它不能像它应该做的那样工作。我很感激帮助。
答案 0 :(得分:2)
将重写条件移至http:
为ON的部分,而不是https:
已经开启的部分。
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/folder/next_folder/custom_id
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]