2014-09-10 27 views
0

我想排除一個網站使用SSL,但我似乎無法獲得指令的權利。我希望我的所有AddOn域都使用除example.com外的SSL。 (因爲StartSSL很難相處).htaccess如何從SSL中排除一個網站?

# Enable https 
RewriteCond %{HTTPS} off 
#RewriteRule (.*) https://%{HTTP_HOST}:443%{REQUEST_URI} 
RewriteRule !^example.com(/|$) https://%{HTTP_HOST}:443%{REQUEST_URI} 

回答

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] 
+0

尼斯,完美的作品,謝謝。不需要第二部分。 – user3033518 2014-09-10 18:41:37