В Cent OS 6, apache 2.2, Bind 9.7.3 я не могу загрузить свои домены с www cname. Если я наберу example.com, он загрузится нормально, но www.example.com загрузит мой основной каталог apache из / var / www / html.
Вот что у меня в 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>
А файл зоны для example.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
?
Это потому, что вы не включаете www в свой виртуальный хост. Итак, Apache не знает, о чем вы говорите. Итак, вам также нужно добавить ServerAlias:
<VirtualHost *:80>
DocumentRoot "/var/www/html/_domains/example.com"
ServerName example.com
ServerAlias *.example.com
</VirtualHost>
Похоже, вам нужно ServerAlias
директива. Итак, определение вашего виртуального хоста должно выглядеть так:
<VirtualHost *:80>
DocumentRoot "/var/www/html/_domains/example.com"
ServerName www.example.com
ServerAlias example.com *.example.com
</VirtualHost>
Для получения дополнительной информации вы можете видеть.
Вам понадобятся строки:
ServerAlias www.example.com
ServerAlias www.example2.com