在 Cent OS 6、apache 2.2、Bind 9.7.3 上,我无法使用 www cname 加载我的域名。如果我输入 example.com,它会加载正常,但 www.example.com 会从 /var/www/html 加载我的主要 apache 目录
这是我在 httpd.conf 中的内容:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "/var/www/html/_domains/example.com"
ServerName example.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/_domains/example2.com"
ServerName example2.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName 94.00.00.00
</VirtualHost>
例如.com 的区域文件如下所示:
$ttl 38400
example.com. IN SOA example.com. webmaster.example.com. (
1326544028
10800
3600
604800
38400 )
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
ns1.example.com. IN A 94.00.00.00
ns2.example.com. IN A 94.00.00.00
example.com. IN A 94.00.00.00
mail.example.com. IN A 94.00.00.00
www.example.com. IN CNAME example.com.
example.com. IN MX 10 mail.example.com.
为什么 www.example.com 会加载默认 html 目录/var/www/html
而不是/var/www/html/_domains/example.com
?您有什么想法吗?
答案1
这是因为您没有将 www 包含在 Virtualhost 中。因此 Apache 不知道您在说什么。因此您还需要添加 ServerAlias:
<VirtualHost *:80>
DocumentRoot "/var/www/html/_domains/example.com"
ServerName example.com
ServerAlias *.example.com
</VirtualHost>
答案2
你需要以下几行:
ServerAlias www.example.com
ServerAlias www.example2.com
答案3
看来您需要该ServerAlias
指令。因此,您的虚拟主机定义应如下所示:
<VirtualHost *:80>
DocumentRoot "/var/www/html/_domains/example.com"
ServerName www.example.com
ServerAlias example.com *.example.com
</VirtualHost>
欲了解更多信息,您可以看。