Ich habe einen Apache2-Server, der unter Debian 9 läuft. Und ich habe 2 Virtualhost-Konfigurationen im /etc/apache2/sites-enabled/
Ordner.
Erste:
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>
Zweite:
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>
Das Problem ist, dass wenn ich gehe, dev.domain.sk
es istOK, aber wenn ich gehe, wird der Inhalt von und test.dev.domain.sk
angezeigtdev.domain.sk
nichtInhalt von test.dev.domain.sk
. Wenn ich die erste Virtualhost-Konfiguration deaktiviere, sehe ich den Inhalt von test.dev.domain.sk
. Es sieht also so aus, als ob dev.domain.sk
das „überschrieben“ wurde test.dev.domain.sk
. Wie kann ich das lösen?
Antwort1
ServerName
Das Problem ist, dass Sie die Direktive zweimal mit demselben Namen verwenden . ServerName
sollte für jeden virtuellen Host eindeutig sein. In Ihrem Beispiel brauchen Sie das nicht ServerAlias
. Hier ist ein Beispiel für das, wovon ich spreche:
<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>