2010-07-05 131 views
1

我在一個apache服務器上有5個站點。其中一個網站使用SSL。所以當其他網站用https訪問時,它們會被重定向到不正確的SSL網站。從https重寫到http

E.g.

https://x.com (with SSL)

http://y.com (normal site no SSL)

如果我訪問https://y.com然後我從x.com內容。我該如何修復,所以https://y.com只是被重寫爲http://y.com

回答

0

你可以在apache配置文件中定義它。您必須將規則添加到https端口傳入的連接。

如果您使用的是linux,可以推薦您在/etc/apache2/sites-available/default-ssl中使用此配置。

如果沒有這個文件,你必須尋找HTTPS虛擬主機:

<IfModule mod_ssl.c> 
<VirtualHost _default_:443> 
1

在你的.htaccess放:

RewriteCond %{HTTPS} on [NC] 
RewriteRule ^(.*)$ http://y.com/$1 [R=301,L] 
+0

這應該這樣做,但是,您將最有可能獲得一個由於從https重定向仍然意味着使用https連接到主機,因此需要證書才能使用主機名,因此最終用戶的證書相關錯誤。問題在於,您不能在同一個網絡接口和端口組合上擁有多個證書(因爲在確定請求的主機名之前發送證書)。 – 2010-07-05 12:58:17

+0

現在我再次看了一遍,我不確定這個重寫條件是否可行。你很可能需要一個符合https虛擬主機內請求的主機名的條件,而不是在常規域.htaccess中。 – 2010-07-05 13:02:02

+0

如果您試圖通過移動文件之間的語句來避免證書錯誤 - 它不會執行:)在任何重寫規則被觸發前請求證書,因此將其移至虛擬主機也無濟於事。至於如果這可以工作 - 它的工作原理,但我反過來使用它來讓用戶在需要時使用https。 – bisko 2010-07-05 13:17:31