我目前有一个主域名:mydomain.com
一切正常。
我现在想要做的是通过我的 mydomain.conf 文件添加一个子域,这样我就可以拥有:
sub.mydomain.com
我已尝试以下操作 - 但结果是我在 sub.mydomain.com 上提供来自 mydomain.com 的内容:
# MY MAIN DOMAIN
<VirtualHost *:80>
ServerName mydomain.com
ServerAlias *.mydomain.com
DocumentRoot /var/www/mydomain.com/html
</VirtualHost>
# DEFINING MY SUBDOMAIN
<VirtualHost *:80>
ServerName sub.mydomain.com
ServerAlias sub.mydomain.com
DocumentRoot /var/www/sub/html/
</VirtualHost>
我自然而然地为子域名创建了 DocumentRoot:DocumentRoot /var/www/sub/html/
在我的 DNS 供应商处,我为两者创建了 A 记录:sub.mydomain.com www.sub.mydomain.com - 并将其指向我的服务器 IP。(与 mydomain.com 指向的 IP 相同)
我正在运行 Centos 6.2。
知道这里有什么问题吗?
答案1
问题是你的第一个 VirtualHost 有以下行
ServerAlias *.mydomain.com
这与所有子域匹配。由于 VirtualHosts 是按照它们在配置文件中出现的顺序进行解析的,因此 Apache 将找到此 VH,而不会继续查找下一个。
换句话说,您需要移动两个域名,以便子域名的 VirtualHost 条目出现在主域名的 VirtualHost 条目上方。
答案2
Your virtual host entry should be like this. Hope it will help you.
<VirtualHost mydomain.dev:80>
ServerName www.yourdoamin.com
ServerAlias yourdomain.com *.yourdomain.com
DocumentRoot /var/www/path_of_folder
</VirtualHost>