2014-10-28 19 views
1

我有我的網站的SSL證書。.htaccess - 兩個條件 - 對於https和非https子域

我正在使用htaccess將所有人重定向到我網站的https網址。

即任何人在http://www.example.com或只是www....打字將被重定向到https地址。

這一切工作正常。

但現在我已經創建了子域http://www.blog.example.com

這不是SSL保護。 所以我需要這個網址無法得到重定向到HTTPS

這是我目前有我的htaccess的:

Header set Strict-Transport-Security "max-age=31536000; " 
RewriteEngine On 

RewriteCond %{HTTP_HOST} ^example.com [NC] 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC] 

RewriteCond %{HTTP_HOST} ^blog.example.com [NC] 
RewriteRule ^(.*)$ http://www.blog.example.com/$1 [R=301] 

嘗試了不少東西,但不起作用。一直在尋找這裏的其他問題,但他們的解決方案似乎沒有工作。任何幫助?

感謝

回答

1

嘗試:

Header set Strict-Transport-Security "max-age=31536000; " 
RewriteEngine On 

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} !blog\.example\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R] 
+0

是它的工作原理。謝謝!。我拿出最後一個條件,因爲我不需要那個。但是謝謝。所以最後;如果你把條件疊加起來,它就像一個IF ...和。 IF cond1 AND cond2 AND cond3 ... do ...我不知道它是這樣工作的。謝謝 – Lan 2014-10-28 14:46:16

+1

@Lan yeah,除非你使用'[OR]'標誌,否則所有條件本質上都是「AND」編輯在一起的。 – 2014-10-28 14:52:09