我是 Linux 和服务器方面的菜鸟,但我已经开始了一个项目来学习。我现在想做的是让通配符子域名发挥作用。
在我的 vhost(sites-available)文件中我有:
<VirtualHost *.80>
ServerName domain.com
ServerAlias www.domain.com domain.com *.domain.com
ETC..
在我的域名注册商 DNS 设置中,我有一个指向我服务器 IP 的 @、www 和 * 的 A 记录。据我所知,现在这应该可以正常工作,但是当我进入浏览器并浏览 *.domain.com 时,它会出现默认的 apache 文本“它起作用了!”,当我直接进入 domain.com 时,我可以看到我的网页(我也希望它显示在 *.domain.com 上)。
任何帮助都将不胜感激!我可能忽略了一些显而易见的东西,但我是个菜鸟 :)
答案1
我从来不知道像这样写 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>
答案2
尝试这个
NameVirtualHost *:80 # enable name virtualhosting
<VirtualHost *:80> # :80, not .80
ServerName domain.com
ServerAlias *.domain.com # www.domain.com matches *.domain.com
...
</VirtualHost>
答案3
没关系,我忘了重新启动 apache。