When you specify even only ONE VirtualHost, all standard settings (outside from VirtualHosts) are IGNORED by Apache. instead, you *should* specify a VirtualHost for localhost as well (similar to your declaration for empire.com).
If you DO NOT specify a VirtualHost for localhost, Apache does NOT take the "external" settings of your ServerName etc., instead Apache simply takes the FIRST VirtualHost of your declared VirtualHosts. In your case, if you enter "localhost", Apache does not know that is meant by that and takes your first VirtualHost, and this the declaration of empire.com.
And the DocumentRoot of empire.com is NOT c:/xampp/htdocs - and therefore http://localhost/UCCN3004
yields to c:/xampp/htdocs/UCCN3004/UCCN3004 (you see, what is going wrong?!) and of course, Apache cannot find that. Instead, if you only enter http://localhost
, this *should* show up your empire.com Host, and that yields to DocumentRoot c:/xampp/htdocs/UCCN3004
Try it and you will see, simply http://localhost
will show your UCCN3004 files. Probably you dont want this behaviour, therefore add another VirtualHost for ServerName localhost and apply DocumentRoot c:/xampp/htdocs.