Getting More Out Of Apache (Part 1) - Gotcha! (
Page 4 of 5 )
There are, however, a couple of gotchas with virtual
hosting.
Once you have specified the NameVirtualHost directive, it's
important to remember that all the other default settings in your configuration
file are null and void. Consequently, if you wish to access the default server
"localhost", you will need to include it in the list of virtual
hosts.
The second gotcha is the one mentioned a few pages back - clients
which do not support HTTP/1.1 will not be able to view virtual hosts correctly.
The Apache documentation addresses this problem via the ServerPath
directive.
Here's what it would look like:
# host setting for melonfire-alpha.com
<VirtualHost 127.0.0.1>
ServerAdmin webmaster@melonfire-alpha.com
DocumentRoot /www/melonfire-alpha.com
ServerName melonfire-alpha.com
ServerPath /alpha
ErrorLog logs/melonfire-alpha.com-error_log
CustomLog logs/melonfire-alpha.com-access_log common
</VirtualHost>
# host setting for melonfire-beta.com
<VirtualHost 127.0.0.1>
ServerAdmin webmaster@melonfire-beta.com
DocumentRoot /www/melonfire-beta.com
ServerName melonfire-beta.com
ServerPath /beta
ErrorLog logs/melonfire-beta.com-error_log
CustomLog logs/melonfire-beta.com-access_log common
</VirtualHost>
How does this work? Very simply - any requests for URLs beginning with the
descriptor /alpha will be automatically served from host "melonfire-alpha.com",
while URLs beginning with the descriptor /beta will be served from host
"melonfire-beta.com".
For more information on this, you should take a
look at the Apache documentation, which includes a working example.