No seu caso, eu substituiria
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/mydir
ServerName test.example.com
ServerAlias www.test.example.com
</VirtualHost>
por
<VirtualHost *:80>
DocumentRoot /var/www/html/mydir
ServerName test.example.com
ServerAlias www.test.example.com
</VirtualHost>
# /!\ THIS HAS TO BE ON THE LAST POSITION /!\
<VirtualHost *:80 *:443>
ServerName localhost
ServerAlias *
DocumentRoot /var/www/html/
</VirtualHost>
Como todo pedido que não seja test.example.com & www.test.example.com entregará / var / www / html /
Mais informações: NameVirtualHost
não tem uso no seu caso e foi removido no Apache 2.4
link