Вот то, что я придумал до сих пор:
надо надеяться, кто-то может проверить, что это - разумные настройки или изменяет к лучшему это.
Помочь отладить проблемы как это выполнение 'apache2ctl-s' [1] покажет, как и какой апач порядка соответствует vhosts.
[1]: apache2ctl можно назвать apachectl на некоторых дистрибутивах
Конфигурация в качестве примера:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.tld
DocumentRoot /www/domain
</VirtualHost>
<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>
Первый виртуальный определенный хост будет действовать как хост по умолчанию.
http://httpd.apache.org/docs/2.2/vhosts/name-based.html#using
Если требуется иметь специальную конфигурацию для запросов, которые не соответствуют никакому конкретному виртуальному хосту, просто помещают ту конфигурацию в контейнер и перечисляют ее сначала в конфигурационном файле.
"Корректное было бы то, что домены, которые не настроены как виртуальные хосты, возвращают ошибку имени хоста или что-то, правильно?"
Если Вы действительно хотите это поведение, просто создают виртуальный хост, помещают его перед всеми другими записями VirtualHost и точкой в пустую папку. Без документов для обслуживания это даст Вам 403 ошибки.