2012-06-25 30 views
0

我有godaddy託管,我用它來承載多個域。有了這個託管,我得到了一個免費的標準(單域)SSL證書。我將其設置在我的主域上,並且都很好,https://www.primarydomain.com的作品。此外,我的輔助網站仍然與常規http協同工作。.htaccess SSL單域

(也只是讓你知道,大多數瀏覽器告訴我,當我去https://secondarydomain.com回去,不良網站,可能會損害計算機等專業,因爲該證書只適用於主。)

那麼我試圖做的是,當用戶進入到我的主站點,htaccess的使用此代碼會自動更改爲HTTPS:

RewriteEngine On 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

這工作,一切都很好,但由於二級域名得到他們的內容形式的目錄第一個域,.htaccess會影響我擁有的所有域,因此嘗試將https添加到我的輔助域。 (告訴用戶離開網站)

我該如何告訴.htaccess只有在我的主域名時才更改爲https,並且僅爲我的輔助域名保留http?

如果你不知道到底我說的話,你可以看到馬上我的主域名更改爲https:我的中學域http://www.alexkafer.com

接着一個:http://www.codingapple.com還試圖更改爲https,即使它不是針對該域名製作的。 我保證我的中學不會損害你的電腦,它只是證書不是域名codingapple.com這就是我正在努力解決的問題。

+0

你應該看看[this](http://serverfault.com/a/360985/47187)。 – Bruno

+0

@布魯諾我可能是錯的,但我不認爲他在'mod_ssl'之前試圖調用'mod_rewrite',他只是想在重定向到'HTTPS'之前檢查主機名。 –

+0

@ScottS,好點,我太快讀過這個問題了,對不起。 @Alex,你有沒有嘗試添加另一個重寫條件?像其他重寫條件下的「RewriteCond%{HTTP_HOST} www.primarydomain.com」。 – Bruno

回答

0

謝謝@Scott S代碼。它運作了完美,除了它做了我想要的對照。

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^(127\.0\.0\.1|localhost)$ 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

上述代碼將每個輔助域更改爲HTTPS而不是主要HTTPS。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(127\.0\.0\.1|localhost)$ 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

我刪除了!在^(127.0.0.1 | localhost)$之前,現在它正在做我所需要的!

+0

這有點奇怪,如果你仍然希望你的主域被重定向,那麼'www.primarydomain.com'不應該匹配'^(127 \ .0 \ .0 \ .1 | localhost)$'。 – Bruno

+0

我並不打算將代碼用作本地域檢查器(**「例如,下面的代碼」**),但如果它工作正常...... –

0

添加一個RewriteCond檢查網址。

例如,如果以下代碼不是本地連接,它將打開HTTPS

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^(127\.0\.0\.1|localhost)$ 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
+0

我該如何切換?因此,如果代碼是本地連接,代碼將打開HTTPS。 – Alex