我正在尝试将一个网站排除在使用SSL之外,但我似乎无法正确使用该指令。我希望我的所有AddOn域都使用SSL,除了example.com。 (因为StartSSL很难相处)
# Enable https
RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}:443%{REQUEST_URI}
RewriteRule !^example.com(/|$) https://%{HTTP_HOST}:443%{REQUEST_URI}
答案 0 :(得分:0)
您尝试做的事情无效。在将任何请求数据发送到服务器之前,初始化SSL握手,因此,无论您做什么,如果有人前往https://example.com
,您将获得证书异常。
如果证明例外不是您的问题,那么您需要与%{HTTP_HOST}
变量匹配:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
然后如果你需要:
RewriteCond %{HTTPS} on
RewriteCond ^{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]