2014-07-06 69 views
1

我目前有mod_rewrite到位,代碼我發現將所有請求重定向到沒有www的同一個URL。mod_rewrite www到no-www和http到https同時

我現在要做的就是配置Apache mod_rewrite來執行以下操作,而不會浪費任何操作/其他重定向。

http:// to https:// 

http://www. to https:// 

我不熟悉,但在僞代碼,http(s)://(www.)domain.comhttps://domain.com全權在頂層的URL,不包括子域。

回答

2

你只需要兩個條件中的一個規則:在你的DOCUMENT_ROOT/.htaccess文件

把這個代碼:

RewriteEngine On 

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule^https://domain.com%{REQUEST_URI} [NE,R=301,L] 
+1

+1,我注意到要使用'%{REQUEST_URI}'來保存你的網址,'NE'標誌我很喜歡。 :) – zx81

2

是的,有一種方式將這些操作組合成一個單一的規則:

RewriteCond %{HTTP_HOST} !=example.com [OR] 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/(.*) https://example.com/$1 
0

這一個爲我工作。我嘗試了上面的那個,但它在舊版瀏覽器上創建了一個重定向循環。

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 

RewriteCond %{SERVER_PORT} ^443$ 
RewriteCond %{HTTP_HOST} !^example\.com$ [NC] 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 
相關問題