2013-08-23 23 views
0

我想重寫所有下列URL Apache中擺脫www前綴的(v2.2.22 - Debian的):無法在Apache中

http://mydomain.com/something

http://www.mydomain.com/something

https://www.mydomain.com/something

https://mydomain.com/something

重寫HTTP到HTTPS是沒有問題的 - 這工作得很好。但我似乎無法擺脫www前綴。我的域名與www一起運行,但是我的SSL證書恰好只對mydomain.com和mail.mydomain.com有效,對www.mydomain.com不是有效 - 所以www在我的瀏覽器中給了我SSL警告。

我已經嘗試了很多網絡上的建議,這些建議似乎都不起作用。目前在我的/ etc/apache2的/網站可用/默認值(由apache2.conf拾起)如下:

RewriteEngine On 
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule (.*) https://mydomain.com/$1 [L] 

RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule ^(.*)$ https://mydomain.com/$1 [L] 

正如我所說的,這適用於HTTP => HTTPS,而不是失去了www前綴。有任何想法嗎?

回答

0

你忘了做外部重定向。添加[R=301]標誌。

RewriteEngine On 

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

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

謝謝,但它似乎並沒有幫助。 – planck

+0

@planck兩條規則都需要301。 –