Apache2 - Virtualhost показывает содержимое другого виртуального хоста

Apache2 - Virtualhost показывает содержимое другого виртуального хоста

У меня есть сервер Apache2, работающий на Debian 9. И у меня есть 2 конфигурации виртуального хоста в /etc/apache2/sites-enabled/папке.

Первый:

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, как я могу это решить?

решение1

Проблема в том, что вы используете ServerNameдирективу дважды с одним и тем же именем. ServerNameдолжно быть уникальным для каждого виртуального хоста. В вашем примере это не нужно ServerAlias. Вот пример того, о чем я говорю:

<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>

Связанный контент