So I've read the documentation, tested, changed settings, anything I could think of, and I still can't get this to work. I'm running Apache 2.2.2 and want to host two sites on one IP address. I set up the virtual hosts as follows: listen 80 NameVirtualHost *:80 <VirtualHost *:80> #backup page DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs" ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/www/TheAccessoryOutlet" ServerName 127.0.0.1 </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/www/BeadsByDee" ServerName 192.168.0.41 </VirtualHost> I know the ServerNames are funny, but I'll explain why that's okay in a sec. I have the first host (in htdocs) as the default backup host with a "index.php" that just says try again, or whatever. The next two have "index.php" in their respective folders. The problem I'm having is that the backup is the page loading everytime, no matter what ServerName I access my server with. Naturally, I just thought it was always going to the backup page because my ServerNames weren't matching since I'm not using actual URLs, just IP addresses, but I decided to print out $_SERVER['DOCUMENT_ROOT'], and it accurately identifies the corresponding doc root that I wanted. Namely, I get a different doc root for going through localhost, 127.0.0.1, or 192.168.0.41, as if they were URLs, as I intended. So why, then, is it loading up the first "index.php", when it says explicitly that the doc root is otherwise? I even put an identically named image in each folder, and it loaded different ones up each time, but still would say "try again", since it loaded the backup "index.php". What the heck is going on? Does anyone have some insight? I need it to load up the respective "index.php". Maybe I can redirect it or something?