虚拟主机 + DNS 通配符子域名

虚拟主机 + DNS 通配符子域名

我是 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。

相关内容