Virtual host for subdomain overriding default virtual host
Solution 1:
Your problem is here:
<VirtualHost subdomain>
Don't do that, since it's giving that vhost priority over the existing one for whichever IP that resolved to. It should be <VirtualHost *:80>
matching your existing vhost. The ServerName
directive is where the 'name' of the vhost should go.
You also need a NameVirtualHost *:80
somewhere, if you don't already have that.