2013-04-04 87 views
2

我試圖將用戶重定向到https://www.example.com,www的,當用戶試圖http://example.comwww.example.comhttps://example.comhttp://www.example.com從HTTP重定向到HTTPS複製

對於我在.htaccess -file使用此代碼:

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^(.*) https://www.%{SERVER_NAME}/$1 [R,L] 

與此問題是,當在www.example.comhttp://www.example.com用戶的類型,該用戶將被重定向到https://www.www.example.com。換句話說,它會複製www。

我怎樣才能避免這種情況?

+3

那些關閉這個...我明白這_might_被認爲是「局部的」,但,我不確定爲什麼它是'脫離主題'? – Jon 2013-04-15 07:48:50

+2

它不是脫離主題或本地化。順便說一句,可能會重複*,因爲有幾十個類似的問題,不關閉。在這種情況下,這只是無意義的,因爲它經常發生在這裏,很不幸。 – 2013-04-25 08:47:34

回答

2

也許這將工作:

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

確保'www'永遠在那裏的好方法。 ^^ – Jon 2013-04-04 22:35:55

+0

工作就像一個魅力! – 2013-04-04 22:36:29

0

您是否嘗試過:

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

這使用Apache獲取主機和不依賴於它的重定向,並且也將使用Apache以及保持請求的URI。 ^^(而無需使用任何居然在RewriteRule匹配)

+0

耶!這擺脫了www重複,但通過時進入該網站。 'http:// example.com'只會被重定向到'https:// example.com'。我需要該域永遠是「https:// www.example.com」。感謝您的快速回復,喬恩:-) – 2013-04-04 22:32:49

+0

沒問題!對不起,我誤解了總是需要'www'的第一部分。 ^^ – Jon 2013-04-04 22:36:38