Назад | Перейти на главную страницу

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

Проблема в том, что вы используете 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>