Apache의 동적 대량 가상 호스트에 대한 정식 리디렉션

Apache의 동적 대량 가상 호스트에 대한 정식 리디렉션

사용자가 자신의 도메인을 서버로 지정할 수 있도록 하는 Apache의 웹 앱이 있습니다.

지금은 VirtualDocumentRoot /www/hosts/%0/docs 항목과 함께 Apache의 동적 대량 가상 호스트를 사용하고 있습니다.

따라서 www.companydomain.com은 /www/hosts/www.companydomain.com/docs를 가리킵니다.

문제는 사용자가 companydomain.com으로 이동하면 /www/hosts/companydomain.com/docs를 가리킨다는 것입니다.

Apache가 가상 호스트에 대한 디렉토리가 존재하는지 자동으로 확인하고, 존재하지 않으면 "www"로 호스트 이름을 찾는 쉬운 방법이 있습니까? 그 앞에? 다른 하위 도메인은 괜찮지만(예: abc.domain.com은 def.domain.com과 다른 디렉터리를 가리켜야 함) 전체 "www" 문제는 나에게 미스터리입니다.

저는 동적 대용량 가상 호스트를 사용하고 있으므로 애플리케이션을 등록할 때마다 서버를 다시 시작할 필요가 없습니다. 아파치가 매번 다시 시작되지 않는 한 다른 방법이 있다면 괜찮습니다.

이 작업을 어떻게 수행할 수 있습니까? 서버의 "기본" 위치로 리디렉션할 수 있는 방법이 있는 경우 최악의 시나리오는 항상 PHP 등을 통해 확인할 수 있지만 약간 해킹된 것 같아서 더 효율적이어야 합니다. 방법.

미리 감사드립니다!

답변1

나는 -d directoryRewriteCond 옵션을 조사하여 이 가상 호스트에 대한 디렉토리가 존재하는지 테스트하고 디렉토리가 존재하지 않으면 명시적으로 www.example.com으로 리디렉션할 것이라고 생각합니다. 이를 통해 사람들은 예상하지 못한 페이지를 받았을 때 충격을 받지 않게 되며 검색 엔진에 의한 다중 색인 생성을 방지할 수 있습니다.

답변2

module/mappers/mod_vhost_alias.c의 458번째 줄

if (strncasecmp(name,"www.",4) == 0) {
    name+=4;
}

관련 정보