2011-03-01 81 views
4

我在我的.htaccess文件中有此代碼,如下所示。如何將https://example.com/重定向到https://www.example.com/

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

添加了此項以將http重定向到https,因此整個站點現在都在https版本中。

現在我想從非www重定向到www。當我鍵入example.com時,我應該被重定向到https://www.example.com/

我該如何使用.htaccess文件做到這一點?

回答

-1

將以下行放入您的.htaccess文件中,並將mydomain.com替換爲您要重定向的域。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.){0,1}mydomain.com$ [OR] 
RewriteCond %{HTTPS_HOST} ^(www\.){0,1}mydomain.com$ 
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L] 

對於這個工作,你將不得不刪除您在你的問題提從.htaccess文件

+0

都能跟得上......這是行不通的勞倫斯·伍德曼先生......與上面的代碼我的網站重定向到.... > https://www.mysite.com/https://mysite.com/%22 這就是我也正面臨着,當我自己嘗試上面的代碼..它只是重定向到somewr else ..... 任何有才能的技術人員在這裏?我認爲它需要在我現有的htaccess文件代碼中的一些操作.. > RewriteEngine敘述上的RewriteCond%{} HTTPS >關閉重寫規則 > HTTPS(*)://%{HTTP_HOST}%{REQUEST_URI} – jeni 2011-03-01 07:20:27

+0

@ jeni您描述的問題可能是由雙重定向引起的。如果你只是把我在我的回答中提到的代碼放到你的.htaccess文件中而沒有你現有的代碼,它應該可以工作。 – 2011-03-01 10:24:18

6

非SSL重定向現有條目:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain\.com 
RewriteRule ^(.*)$ http://www.domain.com$1 [R=permanent,L] 

SSL重定向:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain\.com 
RewriteRule ^(.*)$ https://www.domain.com$1 [R=permanent,L] 
+0

非SSL和SSL重定向是什麼意思。 在我的情況下,Apache服務器位於負載均衡器後面,並且從負載均衡器發送到服務器的所有請求都是端口80上的HTTP – 2015-09-12 08:53:46

-1

我可能有解決方案n:

RewriteEngine on 

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

將[domain]和擴展替換爲您自己的域。告訴我,如果這不起作用。

0

這個怎麼樣爲HTTPS使用端口443

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