2012-05-23 75 views
6

我搜索並找到了數百個相關案例,但沒有完全按照我的需要。 我需要重定向的組合,請執行下列操作:將https重定向到非www和http到www

訪問:

http://mysite.com -redirected to-> http://www.mysite.com 

雖然:

https://www.mysite.com -redirected to-> https://mysite.com 

對於正常HTTP網站,我想迫使WWW

但SSL證書只能加www,所以HTTPS應該有WWW。

謝謝如果有人能幫助我。

+1

你爲什麼要這麼做? – Gerben

+0

因爲ssl證書僅設置爲「mysite.com」 – Zarco

+3

那麼,爲什麼不將http流量重定向到非www版本呢? – Gerben

回答

0

在將這個在你的.htaccess文件的非HTTPS文檔根:

RewriteCond %{HTTP_HOST} ^mysite.com$ 
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R] 

這您的HTTPS文檔根:

RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^www.mysite.com$ 
RewriteRule ^(.*)$ https://mysite.com/$1 [R] 
+0

不工作,就好像根本沒有效果一樣。 – Zarco

+0

兩個都沒有工作?你確定你的.htaccess文件正在被讀取嗎? – Ansari

+0

經過進一步測試,是的,第一個工作。 'http:// mysite.com'被重定向到'http:// www.mysite.com'但是'https:// www.mysite.com'沒有被重定向到'https:// mysite.com' – Zarco

11

重定向從https://www.mysite.comhttps://mysite.com能只有在客戶向https://www.mysite.com發出初始請求後纔會發生。

要使此初始連接正常工作,服務器https://www.mysite.com必須具有有效的www.mysite.com的證書,否則此連接甚至不會發生(並且服務器不會發送重定向響應)。

如果您仍然希望在同一臺服務器上進行重定向,則您的服務器必須提供對您想要提供服務的主機名有效的證書。您應該獲得帶有兩個Subject Alternative Name DNS條目的證書:mysite.comwww.mysite.com;這將允許您爲兩臺​​主機提供相同的證書(然後在需要時使用重寫規則)。

(你也可以使用服務器名稱指示與兩個不同的證書,如果你希望客戶端支持它,但是這通常是完全不同的主機名。)

這是很常見的核證機關頒發的證書當您申請其中一個時,有效期爲mysite.comwww.mysite.com,有時不收取額外費用。

+0

你知道如何使用'Redirect'來代替'Rewrite'? –

相關問題