无法摆脱apache中的www前缀

时间:2013-08-23 23:39:09

标签: apache .htaccess mod-rewrite

我正在尝试重写Apache中的所有后续网址(v2.2.22 - Debian):

  

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 / sites-available / default(由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前缀。有什么想法吗?

1 个答案:

答案 0 :(得分: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]