2

我目前使用的是:

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。也。

我尝试了不同的方法,但仍然出现错误,或者它无法正常工作。我很感激帮助。

4

1 回答 1

2

将重写条件移动到已为 ON 的部分而http:不是https:已为 ON 的部分。

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]
于 2013-08-10T16:40:17.780 回答