В проекте 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>
Обновление: как предлагается ниже и в других местах, игнорирование запроса может быть плохой идеей и, возможно, нарушает RFC для HTTP. Тем не менее, поскольку виртуальные хосты предназначены для имитации нескольких отдельных физических HTTP-серверов, подход игнорирования без вывода сообщений не кажется мне необоснованным. Это будет то же самое, что виртуальный хостинг на базе IP и брандмауэр на некоторых IP-адресах (возможно, не для всех клиентов).