VirtualHosts + DNS通配符子域名

我是一个完整的Linux和服务器noob,但我已经开始了一个项目,试图学习。 我现在想要做的是获得通配符子域的工作。

在我的虚拟主机(网站可用)文件中,我有:

<VirtualHost *.80> ServerName domain.com ServerAlias www.domain.com domain.com *.domain.com 

等等..

在我的域名注册商的DNS设置中,我有@,www和*指向我的服务器IP的Alogging。 现在据我所知,这应该是工作,但是当我进入我的浏览器,并浏览到* .domain.com它出现了默认的Apache文本“它的作品!”,当我直接去domain.com我可以看到我的网页(我也想为* .domain.com显示)。

任何帮助将不胜感激! 我可能失去了一些盲目明显的东西,但我是一个noob 🙂

我从来不知道写这样的ServerAlias选项

 ServerAlias www.domain.com domain.com *.domain.com 

如果你对dnsconfiguration做得不错,尝试为真实域(默认域)创buildvhostconfiguration,然后在所有真实域vhostconfiguration后为通配符创build另一个vhostconfiguration。

 <VirtualHost *:80> DocumentRoot "/var/www/html/abc" ServerName www.abc.com ServerAlias www.abc.com </VirtualHost> <VirtualHost *:80> DocumentRoot "/var/www/html/abc" ServerAlias *.abc.com </VirtualHost> 

尝试这个

 NameVirtualHost *:80 # enable name virtualhosting <VirtualHost *:80> # :80, not .80 ServerName domain.com ServerAlias *.domain.com # www.domain.com matches *.domain.com ... </VirtualHost> 

没关系,我忘了重新启动Apache。