Чтобы основанный на имени виртуальный хостинг работал правильно, необходимо соответствовать Вашему связывать адрес для <VirtualHost>
блоки к тому, что настроено в NameVirtualHost
директива. Основанного на имени хостинга не происходит, таким образом, первый блок, который возьмет адрес, получает все запросы.
Как правило, у Вас будет директива как это где-нибудь в Ваших файлах конфигурации Apache (ports.conf, распространено, когда конфигурация разделяется):
NameVirtualHost *:80
Что означает, что Вы хотите vhosts, который будет распределять запросы, по имени должен соответствовать тому, что устанавливается там:
<VirtualHost *:80>
ServerName sub.domain.com
...
</VirtualHost>
<VirtualHost *:80>
ServerName domain.com
# (you might want this too):
ServerAlias www.domain.com
...
</VirtualHost>
Между прочим, почему Ваш <Directory>
директивы, управляющие просто domain_net
и нет domain_com
?