Apache2 - 가상 호스트는 다른 가상 호스트의 콘텐츠를 표시합니다.

Apache2 - 가상 호스트는 다른 가상 호스트의 콘텐츠를 표시합니다.

Debian 9에서 실행되는 Apache2 서버가 있습니다. 그리고 /etc/apache2/sites-enabled/폴더에 2개의 가상 호스트 구성이 있습니다.

첫 번째:

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

관련 정보