Tenho um servidor Apache2 rodando no Debian 9. E tenho 2 configurações de virtualhost na /etc/apache2/sites-enabled/
pasta.
Primeiro:
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>
Segundo:
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>
O problema é que se eu for dev.domain.sk
éOK, mas se eu for, test.dev.domain.sk
ele mostrará o conteúdo dev.domain.sk
enãoconteúdo de test.dev.domain.sk
. Se eu desabilitar a primeira configuração do virtualhost, vejo o conteúdo de test.dev.domain.sk
, então parece dev.domain.sk
"substituir" isso test.dev.domain.sk
, como posso resolver isso?
Responder1
O problema é que você está usando a ServerName
diretiva duas vezes com o mesmo nome. ServerName
deve ser exclusivo para cada host virtual. Você não precisa ServerAlias
do seu exemplo. Aqui está um exemplo do que estou falando:
<VirtualHost *:80>
ServerName dev.domain.sk
DocumentRoot /srv/domain.sk/!www
<Directory /srv/domain.sk/!www>
Options Indexes FollowSymlinks ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName test.dev.domain.sk
DocumentRoot /home/test/domain.sk/!www
<Directory /home/test/domain.sk/!www>
Options Indexes FollowSymlinks ExecCGI
AllowOverride All
</Directory>
</VirtualHost>