![apache虚拟主机中的多个包含文件](https://linux22.com/image/739003/apache%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E4%B8%AD%E7%9A%84%E5%A4%9A%E4%B8%AA%E5%8C%85%E5%90%AB%E6%96%87%E4%BB%B6.png)
我有一堆域名,我的客户也希望 www 可用。
我创建了两个文本文件。一个以 ServerAlias 和域名开头,另一个以 ServerAlias 和 www 域名开头。
每个文本文件都是一行长。
进行了 configtest 语法检查,apache 说 OK 执行了 -t Dump 虚拟主机命令并且所有别名都已正确加载。
在浏览器中无法访问任何 www.domains.com
<VirtualHost *:80>
ServerName sale.com
Include /etc/apache2/sites-available/sale.com-domainlist.txt
Include /etc/apache2/sites-available/sale.com-domainlistwww.txt
DocumentRoot /var/www/sale.com
<Directory /var/www/sale.com>
Options -Indexes +FollowSymLinks AllowOverride All
</Directory>
</VirtualHost>
包含文件
域名列表.txt
ServerAlias sale1.com sale2.com fail.com
域名列表www.txt
ServerAlias www.sale1.com www.sal2.com www.fail2.com
来自服务器的部分 vhost 转储文件
(/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost sale.com (/etc/apache2/sites-enabled/sale.com.conf:1)
alias sale1.com
alias sale2.com
alias fail.com
alias fail2.com
alias www.sale1.com
alias www.sale2.com
alias www.fail.com
alias www.fail2.com
port 80 namevhost mypersonalwebsite.com (/etc/apache2/sites-enabled/mypersonalwebsite.com.conf:2)
alias www.mypersonalwebsite.com
答案1
<VirtualHost *:80>
ServerName sale.com
Include /etc/apache2/sites-available/sale.com-domainlist.txt
Include /etc/apache2/sites-available/sale.com-domainlistwww.txt
DocumentRoot /var/www/sale.com
<Directory /var/www/sale.com>
Options -Indexes +FollowSymLinks AllowOverride All
</Directory>
</VirtualHost>
上述配置对于多个包含文件来说工作得很好。
每个包含文件都以 ServerAlias 开头,并且所有域之间仅应以空格分隔。
我客户的 DNS 设置不适用于子域名 www。我们在其注册商的 DNS 设置中使用了通配符域名的 A 记录。示例:
* IN 45.65.35.76
NAME * VALUE 45.65.36.76
星号显然可以让您拥有多个子域名,而不必为每个子域名创建单独的 CNAME 条目。