Apache isn't respecting the ServerName directive for a particular site

Solution 1:

Lost this question the other day.

When you have a <VirtualHost> container without a ServerName component, it will use the default hostname. As 000-default probably doesn't have a ServerName component, and is the first alphabetically to be included, that is why it answers for hostname.com and doesn't allow your explicitly declared hostname to work.

Solution 2:

Do you have a NameVirtualHost *:80 directive somewhere?

Try:

/usr/sbin/apache2 -S

That will tell you how apache is parsing the config file. Do you have configs that have actual IPs or all have the *? Do you have any missing the :80? Apache doesn't like mixing those.

Do you have a ServerName domain.com or ServerAlias domain.com in default?