我是一个完整的
Linux和服务器noob,但我已经开始了一个项目,试图学习.我现在要做的就是让通配符子域工作.
在我的vhost(sites-available)文件中,我有:
<VirtualHost *.80> ServerName domain.com ServerAlias www.domain.com domain.com *.domain.com
等等..
在我的域名注册商DNS设置中,我有@,www和*的A记录,指向我的服务器IP.据我所知,这应该是有效的,但是当我进入我的浏览器并浏览到* .domain.com时,它会出现默认的apache文本“It works!”,当我直接访问domain.com时,我可以看到我的网页(我也希望在* .domain.com上显示).
任何帮助将不胜感激!我可能错过了一些令人眼花缭乱的东西,但我是一个菜鸟:)
解决方法
我从来不知道像这样编写ServerAlias选项
ServerAlias www.domain.com domain.com *.domain.com
如果您对dns配置做得很好,请尝试为真实域(默认域)创建vhost配置,然后在所有真实域vhost配置之后为通配符创建另一个vhost配置.
<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>