Tengo un servidor Apache2 ejecutándose en Debian 9. Y tengo 2 configuraciones de host virtual en /etc/apache2/sites-enabled/
la carpeta.
Primero:
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>
El problema es que si voy dev.domain.sk
esOK, pero si voy a test.dev.domain.sk
él se mostrará el contenido de dev.domain.sk
ynocontenido de test.dev.domain.sk
. Si desactivo la primera configuración de virtualhost, veo el contenido de test.dev.domain.sk
, por lo que parece dev.domain.sk
"anularlo" test.dev.domain.sk
, ¿cómo puedo resolverlo?
Respuesta1
El problema es que estás usando la ServerName
directiva dos veces con el mismo nombre. ServerName
debe ser único para cada host virtual. No lo necesitas ServerAlias
en tu ejemplo. Aquí hay un ejemplo de lo que estoy hablando:
<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>