Apache2 - Virtualhost zeigt den Inhalt eines anderen Virtualhosts an

Apache2 - Virtualhost zeigt den Inhalt eines anderen Virtualhosts an

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.skes istOK, aber wenn ich gehe, wird der Inhalt von und test.dev.domain.skangezeigtdev.domain.sknichtInhalt 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.skdas „überschrieben“ wurde test.dev.domain.sk. Wie kann ich das lösen?

Antwort1

ServerNameDas Problem ist, dass Sie die Direktive zweimal mit demselben Namen verwenden . ServerNamesollte 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>

verwandte Informationen