How to set up VirtualHost in XAMPP for Windows

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”]127.0.0.1 localhost
::1 localhost
[/code]

Add an additional line so that it looks this way:

[code lang=”ini”]127.0.0.1 localhost
127.0.0.1 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
[/code]

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’.

[ad#highlight]

3. That’s all

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

5 thoughts on “How to set up VirtualHost in XAMPP for Windows”

  1. Just to say that this worked on Windows 7 and Xampp 1.7.4 — except that I had to remove the sections from the vhosts file, because with those in place Apache wouldn’t start.

Leave a Reply

Your email address will not be published. Required fields are marked *