Apache接受CNAMEredirect

我有一个域,让我们说mydomain.com 。 我想将www.mydomain.comredirect到裸域mydomain.com 。 所以我设置了下面的DNS。 (IP只是为了表演)

 A mydomain.com 192.168.0.1 CNAME www mydomain.com 

然而,发生了什么事是,Apache服务于我的默认网站(这是空的),而不是mydomain网站。 由于我主持多个域名,我有:

 /etc/apache2/sites-available/default /etc/apache2/sites-available/mydomain /etc/apache2/sites-available/myOtherDomain /etc/apache2/sites-available/yetAnother 

/etc/apache2/sites-available/mydomain的开头看起来像这样:

 <VirtualHost *:80> ServerAdmin [email protected] ServerName mydomain.com ServerAlias mydomain.com 

这个设置有什么问题,这不是将www.mydomain.comredirect到mydomain.com ? 谢谢你的帮助。

Apache本身不会redirect你..你不得不使用类似mod_rewrite来做到这一点

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

编辑正则expression式的语法。

读了一些虚拟主机 ,发现我可以这样做:

 <VirtualHost *:80> ServerAdmin [email protected] ServerName mydomain.com ServerAlias mydomain.com www.mydomain.com 

这使它工作。 唯一的问题是www保留在地址栏中,而不是redirect。