虚拟主机 - 定义每个子域都有单独的文件夹

虚拟主机 - 定义每个子域都有单独的文件夹

我目前有一个主域名: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>

相关内容