Apache: VirtualHost 동적 도메인 및 하위 도메인을 다른 폴더로 지정

Apache: VirtualHost 동적 도메인 및 하위 도메인을 다른 폴더로 지정

현재 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을 구성해야 할 수도 있습니다.

관련 정보