I'm using Apache 2.2.8 on my home computer. For browsing to my own machine, I've always used the following in my httpd-vhosts.conf file (combined with my computer's hosts file) to point at different local sites:
Code:
<VirtualHost *:80>
    DocumentRoot "C:/websites/site1/www"
    ServerName site1.local
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/websites/site2/www"
    ServerName site2.local
</VirtualHost>
This has always worked just as intended. I recently registered a dynamic domain with dyndns.com, pointing a domain in the format "mydomain.homedns.org" to my computer's IP address. I have wildcards (like site1.mydomain.homedns.org) turned on.

My home router is set up to automatically update dyndns with my changing IP, I have port forwarding pointing requests to port 2080 on my computer, and I have Apache listening on that port. I know this is all working correctly, because requests to mydomain.homedns.org:2080 do return some kind of result from my machine.

But when I try to set up virtual hosts in exactly the same way I always have, the requests do not get routed properly:

Code:
<VirtualHost *:2080>
    DocumentRoot "C:/websites/site1/www"
    ServerName site1.mydomain.homedns.org
</VirtualHost>

<VirtualHost *:2080>
    DocumentRoot "C:/websites/site2/www"
    ServerName site2.mydomain.homedns.org
</VirtualHost>
First of all, while restarting Apache a warning flashes that virtual hosts are overlapping and the first will take precedence. Then requests to not resolve to the proper root directories (neither of them). This includes such bizarre results as getting index.html from one root directory and style.css from the other! I've tried <VirtualHost IP:2080> and <VirtualHost Name:2080>, and I've taken care to always restart the server and clear my cache.

Anyone have an idea what I'm doing wrong?