Ubuntu 14.04,附標準 LAMP 安裝。
在單一 IP 上,我嘗試使用 SSL 和 SNI 運行兩個網站。我有兩個不同的證書,並且它們正在正確應用。我的問題是從 HTTP 重新導向到正確的 HTTPS 網站。
我正在使用最新的 Firefox 進行測試,並且 TLS 設定正確。
所以,簡而言之,每個 HTTP 請求都會被重新導向到...
我透過停用/啟用來檢查重寫模組,沒有發現任何差異
啟用的網站:
(主站點)dev.domain.com.conf
。它的內容是常規的 SSL 虛擬主機內容...
<VirtualHost *:443>
ServerName dev.domain.com
ServerAlias dev.domain.com
...
(為了透過 HTTPS 重定向到主站點,我創建了這個額外的虛擬主機)
dev.domain.com.80.conf
。其內容為:
<VirtualHost *:80>
ServerName dev.domain.com
ServerAlias dev.domain.com
ServerAdmin xxxxxxx
Redirect permanent / https://dev.domain.com/
</VirtualHost>
(第二個主站點)www.domain.com.conf
。它的內容是常規的 SSL 虛擬主機...
<VirtualHost *:443>
ServerName www.domain.com
ServerAlias www.domain.com
...
(為了透過 HTTPS 重定向到主站點,我創建了這個額外的虛擬主機)www.domain.com.80.conf
。其內容:
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias www.domain.com
ServerAdmin rxxxxx
Redirect permanent / https://www.domain.com/
</VirtualHost>
即使在將以下內容新增至兩個用於重定向的虛擬主機配置之後 - 它也沒有幫助。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
HTTPdev.domain.com
正確傳輸到 HTTPS dev.domain.com
,HTTPwww.domain.com
傳輸到 HTTPS dev.domain.com
。
另外,如果我造訪兩個網站的 https URL,它就能正常運作。只有 http 到 https 重定向不起作用。
答案1
也許是瀏覽器緩存,在對各種 apache 配置進行無數次編輯之後。這是摘要:
- mod_rewrite:不需要。
- NameVirtualHost:不需要。
- 為每個網站配置一個用於重定向目的的虛擬主機。
- 上面的重定向指令。
就是這樣。