설계 상 apache2에서 알 수없는 호스트에 대한 http 요청은 처음로드 된 VirtualHost로 보내집니다. 이 기능을 비활성화하는 방법이 있습니까? 다르게 말하면, 사용자가 명시 적으로 명명 된 VirtualHost 정의에만 도달 할 수있는 웹 서버를 갖고 싶습니다. ServerName 또는 ServerAlias 행에 명시 적으로 언급되지 않은 다른 호스트 이름은 자동으로 무시해야합니다.
이것이 가능한가?
Listen 80
NameVirtualHost *
<VirtualHost _default_:*>
# Anything matching this host should be silently ignored.
</VirtualHost>
<VirtualHost *>
DocumentRoot /www/example1
ServerName www.example.com
</VirtualHost>
<VirtualHost *>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>
업데이트 : 아래 및 다른 곳에서 제안한 것처럼 요청을 자동으로 무시하는 것은 좋은 생각이 아니며 HTTP의 RFC를 손상시킬 수 있습니다. 그러나 가상 호스트는 여러 개의 별도의 물리적 HTTP 서버가 있음을 시뮬레이트하도록 설계되었으므로 자동 무시 접근 방식은 나에게 적합하지 않습니다. IP 기반 가상 호스팅 및 일부 IP를 방화벽으로 차단하는 것과 동일합니다 (아마도 모든 클라이언트에 해당되지는 않음).