我在 Debian 9 上运行 Apache2 服务器。我在/etc/apache2/sites-enabled/
文件夹中有 2 个虚拟主机配置。
第一的:
Options FollowSymLinks
<Directory "/srv/">
Options FollowSymLinks ExecCGI
Require all granted
</Directory>
<Directory "/srv">
Options FollowSymlinks ExecCGI
Require all granted
</Directory>
<VirtualHost *:80>
ServerName domain.sk
ServerAlias dev.domain.sk
DocumentRoot /srv/domain.sk/!www
<Directory /srv/domain.sk/!www>
Options Indexes FollowSymlinks ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
第二:
Options FollowSymLinks
<Directory "/home/test/">
Options FollowSymLinks ExecCGI
Require all granted
</Directory>
<VirtualHost *:80>
ServerName domain.sk
ServerAlias test.dev.domain.sk
DocumentRoot /home/test/domain.sk/!www
<Directory /home/test/domain.sk/!www>
Options Indexes FollowSymlinks ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
问题是如果我去dev.domain.sk
它是可以的,但如果我去test.dev.domain.sk
它会显示内容dev.domain.sk
而不是内容test.dev.domain.sk
。如果我禁用第一个虚拟主机配置,那么我会看到 的内容test.dev.domain.sk
,所以它看起来像dev.domain.sk
“覆盖”那个test.dev.domain.sk
,我该如何解决?
问题是您使用
ServerName
相同名称的指令两次。ServerName
每个虚拟主机应该是唯一的。您的示例中不需要ServerAlias
。这是我正在谈论的一个例子: