My environment is Windows Vista but these instructions work for Windows XP as well. I also written a guide on how to set up virtual hosts in Ubuntu.

0. Introduction

Sometimes, we have multiple projects and we would like to access the Project 1’s website by typing ‘http://project1/' in the browser address bar. And Project 2 may be at ‘http://project2/'. This is how we can configure Windows and Apache to do just that. While this guide is written for XAMPP’s Apache, if the instruction applies pretty much to Apache too. You can put your configuration into ‘httpd.conf’.

1. Add a new host in Windows

First go to your hosts file, it is located at C:WindowsSystem32driversetchosts for most people. If you’re using Windows Vista, you need to run command prompt as administrator. Type ‘cmd’ into the search bar and right click on the ‘cmd’ search result to point to ‘Run as administrator’.

Running command prompt as administrator

Type in the following command into your command prompt:

[code lang=“dos”]notepad C:WindowsSystem32driversetchosts[/code]

You will see notepad open and your hosts file looking something like this:

[code lang=“ini”] localhost

::1 localhost


Add an additional line so that it looks this way:

[code lang=“ini”] localhost project1

::1 localhost[/code]

Order doesn’t matter, I just want it to look nicer. ‘::1’ is for IPv6’s localhost by the way.

2. Add VirtualHost into Apache’s configuration

Now edit our httpd-vhosts.conf. It should be located in C:xamppapacheconfextrahttpd-vhosts.conf.

Uncomment the NameVirtualHost line and add new virtual hosts. I add ‘project1’ and ‘localhost’:

[code lang=“apache”]NameVirtualHost *:80

DocumentRoot “C:/projects/project1”

ServerName project1

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Order allow,deny

Allow from all

DocumentRoot “C:/webroot”

ServerName localhost

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Order allow,deny

Allow from all


We’ll have to add localhost in our httpd-vhosts.conf file so that the localhost to continue working. You can add as many virtual hosts as you want in any order. You can even add hosts like ‘project2.localhost’.


3. That’s all

Oh yeah, and remember to restart your Apache server so that your new settings can be reflected. Hope it helps.

comments powered by Disqus