현재 2개의 VirtualHost가 있습니다.
<VirtualHost *:80>
ServerName *.*.comp1.office1.lan
VirtualDocumentRoot /var/www/%-4/%-5/
UseCanonicalName Off
<Directory /var/www/>
Options Indexes FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName *.comp1.office1.lan
VirtualDocumentRoot /var/www/%-4/
UseCanonicalName Off
<Directory /var/www/>
Options Indexes FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
다음과 같은 도메인폴더.site.comp1.office1.lan올바른( /var/www/site/folder/
)을 해결합니다. 하지만 요청하면site.comp1.office1.lan404 오류가 발생합니다.
그리고 Apache는 다음 줄을 기록합니다.
[time...] [error] [client my.ip.there] File does not exist: /var/www/site/_
VirtualHosts의 로딩 순서를 변경하면(두 번째 것이 첫 번째 것보다 먼저 로드됨)site.comp1.office1.lan신은 작동하지만 404 응답의 문제는폴더.site.comp1.office1.lan.
답변1
일반적으로 가상 호스트의 ServerName 항목에 와일드카드를 사용하지 않고 대신 ServerAlias 지시문에 와일드카드를 넣습니다. 예를 들어보십시오
ServerName comp1.office.lan
ServerAlias *.*.comp1.office.lan
...
모두 다르고 가상 호스트 이름이 ServerAlias와 일치하도록 ServerName을 구성해야 할 수도 있습니다.