Apache 接受 CNAME 重定向

Apache 接受 CNAME 重定向

我有一个域名,比如说mydomain.com。我想重定向www.mydomain.com到裸域名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.commydomain.com?谢谢您的帮助。

答案1

Apache 本身不会为你重定向。你必须使用类似 mod_rewrite 的东西来做到这一点

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

编辑正则表达式语法。

答案2

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

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

这使得它工作正常。唯一的问题是,它www仍然留在地址栏中,而不是重定向。

相关内容