Click here to Skip to main content
Click here to Skip to main content

Setting up an ASP.NET website development environment using Visual Studio .NET, Subversion, and Windows XP

, 4 Jan 2007 CPOL
Rate this:
Please Sign up or sign in to vote.
The aim of this article is to give developers a complete set of steps that will allow them to setup their own isolated development environment for developing websites with ASP.NET, Subversion, and Windows XP.

Table of Contents


The aim of this article is to give developers a complete set of steps that will allow them to setup their own isolated development environment for developing websites with ASP.NET, Subversion, and Windows XP.

Microsoft recommends developing ASP.NET web applications in an isolated development environment. For more information on the various kinds of development environments, read the chapter ASP.NET Web Application Development Models from the article Team Development with Visual Studio .NET and Visual SourceSafe.

For developers that already have their environment setup but are not using source control, this article provides simple steps on how to add this functionality to their setup. At the end of each section I have included an Errors section which lists common errors that can occur when performing the proceeding tasks.

The benefits of having a properly setup development environment come in many forms, and once you've used source control and seen how easy it is to setup, you'll wonder how you ever developed without it.

Some of the benefits of source control include:

  • Easily scale the number of people working on a project
  • Allow secure and efficient external access to projects for contractors and road warriors
  • More robust file and project disaster recovery, no need to worry about "where did that file go?"
  • Monitoring the quality of code being written, no more "who wrote this" questions need to be asked
  • Easier workflow automation to reduce errors moving code between development, staging, and production.

The article covers topics such as:

  • How do I setup my machine to be a local/isolated ASP.NET development environment?
  • How do I setup source control for internal and external network access?
  • How do I publish my website from a Subversion repository to my development server?
  • How do I setup my ASP.NET project to have environment specific settings?

1.0 Setting up IIS 5.1 on Windows XP

The following steps will help you setup Internet Information Server (IIS) on Windows XP. You can read more about Windows XP and IIS here and information on Securing your IIS setup can be found here. This link provides some great information on setting up IIS on Windows XP Home Edition.

1.1 First, we will check to see if IIS is installed, click on Start->Control Panel->Add or Remove Programs.
1.2 Click on Add/Remove Windows Components on the left-hand-side bar.

1.3 The Windows Component Wizard should pop up. Scroll down and check the box next to Internet Information Server (IIS), then click Next down the bottom of the wizard, and IIS will be installed.

1.4 Click on the Internet Information Server (IIS) option and then the Details button. Check the box next to FrontPage 2000 Server Extensions. This is needed later on when you use Visual Studio with your local instance of IIS.

1.5 Click on OK, and then click on the Next button to install IIS. You may need to insert your Windows XP CD at this time.
1.6 To check that IIS is working correctly, open your browser and go to http://localhost. You should be presented with a page welcoming you to Microsoft Windows XP Professional and also another browser window with the IIS documentation.

Now that we have confirmed that IIS is running correctly, we need to temporarily change the port that IIS runs on so we can easily install Apache.

1.7 Click on Start->Control Panel->Administrative Tools->Internet Information Services. This will bring up the IIS management console.

1.8 On the left-hand-side, you will see a tree view, with the top part of the tree saying Internet Information Services. Below this will be the name of your computer. E.g., mine says: "VIRTUALXP (local computer)". Expand this tree, and you will see below a folder named Web Sites. Expand this folder, and you will see a folder named Default Web Site.

1.9 Right click on the Default Web Site folder and select Properties from the menu that pops up.
1.10 You will be presented with a config page entitled Default Web Site properties, and the default selected tab will be Web Site. Look for the option called TCP Port which will currently be set to a value of 80. Change this to 81 and then click OK.

1.11 To ensure our change has worked, go to http://localhost:81 and you should see the same welcome page that you saw in 1.4. The Documentation window for IIS will also try to load but fail, ignore this for now.

2.0 Install Visual Studio .NET 2003

One of the benefits of developing ASP.NET websites using Visual Studio .NET 2003 is the power to debug web applications just like you would a desktop application. The Visual Studio .NET 2003 documentation can be found here and there's also a Visual Studio .Net 2003 support area available.

2.1 You will need to ensure you have installed FrontPage 2000 Server Extensions as done in step 1.4. If you haven't and you try and install Visual Studio, it will prompt you again.
2.2 Installing Visual Studio .NET 2003 is a simple process of following the present wizard, the items below summarise the steps you will take during the installation.
  • Install the Visual Studio .NET Prerequisites
  • Visual Studio .NET
  • Product Documentation
  • Service Releases
2.3 Now that Visual Studio.NET is installed, create a simple test application and run it locally. This will ensure that IIS is configured correctly to run ASP.NET applications locally. You can now also practice debugging this application locally on your machine. For further reading on debugging Web applications on your local machine, read the tutorials Debugging an ASP.NET Web Application, Part I - Tracing and Debugging an ASP.NET Web Application, Part II - Debugging.


Visual Studio .NET has detected Web server is not running ASP.NET 1.1 [Microsoft KB article]

This error often occurs if you install Visual Studio after you have already installed IIS. Run the following from a command prompt to fix this:

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i
Unable to start debugging on the web server. The project is not configured to be debugged [Microsoft KB article]

You need to add the following line to your web.config file in order to debug your ASP.NET application:

<compilation debug="true"/>

3.0 Setting up Apache 2.0 on Windows

Apache is an Open Source webserver, you can find the Apache 2.0 documentation here and a Apache 2.0 FAQ is available here. Download links for Apache 2.0.54 which is used in this tutorial are provided below.

3.1 Download the Apache 2.0 install from, the correct mirror download site should already be selected for you. At the time of writing, the version we are using is Apache 2.0.54, and I will be using the Win32 binary (MSI installer), file name apache_2.0.54-win32-x86-no_ssl.msi [4.66 MB].

Please note: Versions lower than 2.0.54 won't work with Subversion 1.2 because of a bug in how Apache < 2.0.54 was built for Windows.
3.2 Once downloaded, run the Apache installer and proceed through the first few pages of the set up wizard until you come to the Server Information page.

The fields you have to fill in are as follows:
3.2.1 Network Domain. Enter the DNS domain in which your server is or will be registered in. For example, if your server's full DNS name is, you would type here. If you are running this at home, then you could just use your name to keep things simple, i.e., mine would be
3.2.2 Server Name: Your server's full DNS name. Going on our example above, I would type in
3.2.3 Administrator's Email Address: Enter the server administrator's or webmaster's email address here. This address will be displayed along with error messages to the client, by default.
3.2.4 Install Apache HTTP Server 2.0 ....: Select the default radio button selected, For All Users on Port 80 as a Service. In this tutorial, we are going to be running Apache on port 81 as 80 will be used to run IIS. If you are installing Apache on a dedicated box, then use port 80.
Once you have entered all those properties, click on the Next button.
3.3 Please select a setup type: Select Typical, as this includes everything required except the source code and libraries for module development.

Then click on the Next button.
3.4 Install Apache HTTP Server 2.0 to the folder: The default path is C:\Program Files\Apache Group under which a directory called Apache2 will be created by default. Unless you have a specific reason to change this, leave it as is.

Click Next and let Apache install, this should only take a minute or so.
3.5 Once Apache has successfully installed you'll notice a tray icon, the tray icon should have a small green arrow in a white circle which indicates that Apache is running. You can easily Start/Stop/Restart Apache from here by left clicking on the icon. If you right click on the icon, you have the option to open the Apache Services Monitor and you can see the status of the Apache Web server there.

3.6 Test that the Apache Web Server is running by entering http://localhost into your browser. You should receive a window with the title Test Page for Apache Installation and some information telling you that Apache has been installed successfully on your system. We now need to change the port that Apache is running on to 81, so that IIS can run on port 80.
3.7 Select the tray icon for the Apache Services monitor, and select Apache2 and click on Stop.

3.8 Now, change the port that IIS is running on back to 80, follow the steps in Section 1 if you need a refresher.
3.9 Go to where you installed Apache (default location will be C:\Program Files\Apache Group\Apache2) and find the conf directory.
3.10 Open up the file httpd.conf with a text editor, and scroll down until you find the Listen directive. The line you should find will look like: Listen 80, just change the 80 to 81 and save the file.

3.11 Select the Apache Services tray icon again, and click on Apache2 and then Start.

3.12 Test that Apache has been changed successfully to port 81, http://localhost:81. You should see the same success page as you saw in 3.6, it may take a few seconds for the page to come up as Apaches initialises.


The Apache service named reported the following error: this is not an Apache module DSO

This error was reported when Apache 2.2 was installed. I have tested everything with 2.0, I haven't updated the apache version yet. If someone does and gets it to work, let me know if you had any problems. I assumed it would be forward compatible.

4.0 Setting up Subversion on Windows

Subversion is an Open Source source control system. Check out this list of great Open Source software, where all the tools are centered around Software management and Engineering. If you know only very little about source control and/or Subversion, read the free book Version Control with Subversion and in particular chapters 1. Introduction, 2. Basic concepts, and 3. Guided Tour before you attempt the rest of this tutorial. If you have the time, read as much as you can so you are familiar with the way Subversion works and what it can do. There's also a Subversion FAQ available aswell.

4.1 We are going to be using Subversion, version 1.2.3. Download the Windows installer from here. For other versions, visit here.
4.2 Run the installer and proceed through the first few standard setup wizard pages until you come to the wizard screen that says Select Destination Location.
4.3 When asked where you wish to install Subversion, the default directory will be C:\Program Files\Subversion. Unless you have a specific reason, leave the installation directory as default, and click Next.

4.4 Select Start Menu folder: You are now asked where you wish the program shortcuts to be made. You can leave the default of "Subversion" OR you have the option of ticking the check box at the bottom of this window and not installing any shortcuts at all. Click Next.
4.5 Select Additional Tasks: The first two additional tasks can be done at your discretion but ensure that the additional task under the heading "Apache Modules" called Install and configure Subversion modules.... is checked.

4.6 You'll be presented with a summary of what is going to be installed, and just click Install. Shouldn't take longer than a minute to install. Once installed, just proceed through the last few steps of the Wizard. Subversion is now installed, and we can proceed to setup Apache.

5.0 Setting up Apache to recognise Subversion repositories

Now we need to ensure that Subversion and Apache can work together. Setting up Subversion and Apache to work together will make it easy for you to access your source control repositories from outside your network/behind a firewall and where necessary provide a much more simpler means of authenticating users to repositories.

5.1 Open up the Apache httpd.conf file again, located in C:\Program Files\Apache Group\Apache2\conf\ if you used the default install.
5.2 Create a directory on your C: drive called svn in which you will store your Subversion repositories. You may change this if you want to store them somewhere else.
5.3 Scroll to the bottom of the file and add the following config information:
<Location /svn>
    DAV svn
    SVNParentPath C:\svn
    AuthType Basic
    AuthName "Subversion repositories"
    AuthUserFile passwd
    #AuthzSVNAccessFile svnaccessfile
    Require valid-user
This config directive lets Apache know where your Subversion repositories are and where to find the authentication information for users trying to access the repository via Apache, e.g., http://localhost:81/svn. You can change the svn variable in the tag if you wish to use a different naming scheme. We now need to create users and passwords for those wishing to access the Repositories.
5.4 Bring up a command window by going Start/Run, type in cmd, and navigate to your Apache installation directory, the default is C:\Program Files\Apache Group\Apache2\.
5.5 Type bin\htpasswd -c passwd ralph (substitute “ralph” with the name of the user you wish to create). This command will create a new password passwd file and add the user ralph to it. Please note: When adding new users, ensure you remove the -c, otherwise you will destroy your current password file.
5.6 You'll now be prompted to type the password twice for the user you have just created.
5.7 You should be presented with a message saying Adding password for user ralph.

5.8 Restart Apache by left clicking on the Apache Services tray icon, then click on Apache2, and then Restart.

5.9 Copy the file C:\Program Files\Subversion\bin\libdb43.dll from the Subversion installation directory to the Apache modules directory, C:\Program Files\Apache Group\Apache2\modules\.
5.10 Edit Apache's configuration file C:\Program Files\Apache Group\Apache2\conf\httpd.conf with a text editor such as Notepad and make the following changes:
5.11 Uncomment (remove the '#' mark) from the the following lines, the first two should be next to each other in the config file:
#LoadModule dav_fs_module modules/
#LoadModule dav_module modules/
Check that the following two lines were added to the end of the LoadModule section. These lines should exist as our Subversion installation should have taken care of it:
LoadModule dav_svn_module modules/
LoadModule authz_svn_module modules/
5.12 Restart Apache as in 5.8.
5.13 Now, test your Subversion/Apache configuration by opening a browser and going to http://localhost:81/svn.
5.14 If successful, you should be prompted to authenticate with Apache, type in the username and password you created in 5.4. You should receive a message saying: Forbidden, You don't have permission to access /svn on this server, where svn can be substituted for the parameter you set in the directive in 5.3. Don't be worried about this message; since we haven't setup any repositories yet, this is normal. If you are getting errors, see the error section below.

Now, you can setup TortoiseSVN to create and modify your Subversion repositories from Windows Explorer.


Error: Authorization Required

You didn't get your username and password correct.

404 file not found

You may receive this message if you haven't set the directory correctly in step 5.1. Check that the directory you created to store your repositories in, is correctly entered in the Apache config.

6.0 Setting up TortoiseSVN

TortoiseSVN is one of the free Subversion Windows clients available. RapidSVN is an alternative and cross-platform client that quite a few people use although I haven't used it. The TortoiseSVN documentation can be found here and there's also a TortoiseSVN FAQ available aswell.

6.1 You can download the Windows installer from here. For this tutorial, I used the version TortoiseSVN- However, since then the latest version of TortiseSVN has the .svn bug work around built into the client.

Note: working copies created by this version (and when you enable the .svn -> _svn directory work around) are incompatible with other Subversion clients!
6.2 Run the installer and step through the installation wizard. You can leave all of the options on their default settings as per the picture below. You will be shown a change log, and you'll also need to reboot at the end of the installation.

6.3 Once you have rebooted, you'll now notice a new context menu item when you right click on a directory in Windows Explorer.

Next, you'll learn to use TortoiseSVN to create repositories.

7.0 Creating Subversion repositories using TortoiseSVN

7.1 Using Windows Explorer, navigate to the folder you created to store Subversion repositories, default is C:\svn\, and create a new directory with the name you want for your repository, say MyRepository. Use the name of your program or project you wish to store in Subversion.
7.2 Right click on the new folder you just created, and select the menu option TortoiseSVN and another context menu will appear. Select Create Repository here.....

7.3 You will be asked about the type of repository you wish to create, select Native File System, it should be the default. See Repository Data-Stores in the Subversion book regarding information on a comparison of the various repository types. You should be prompted with a message indicating that the repository was created successfully, and you should now see that some directories and files were created in C:\svn\Respository\.

7.4 We now need to create the structure of your repository. It is highly recommended that you read Creating a Repository Layout in the Subversion book. This discusses issues like do I use one repository for all my projects or use individual repositories for each project. For simplicity, in this tutorial, we are going to assume you are creating one repository to hold one project.
7.5 Create a directory in your C:\svn\ folder called repos_structure. This directory will contain the template directory structure, used to setup a new repository.
7.6 Create three directories within repos_structure called trunk, branches, and tags.

7.7 Right click on the directory repos_structure and select TortoiseSVN->Import.... Only the directories within this directory will be imported.
7.8 You will be presented with an Import window. For the URL of the repository, use http://localhost:81/svn/MyRepository. Type a comment in the Import Message to signify that this is the initial directory import.

7.9 Authentication window. Import window successful. You may experience a slight pause, and then you will see a log of what has been imported into Subversion.

7.10 Go to http://localhost:81/svn/MyRepository/ and you'll see your imported directory structure. If it's your first time accessing the repository, you will be presented with an authentication window. Use the uername and password we created in Setting up Subversion and Apache in 5.4. You have the option of saving the authentication information. Now that your repository is all setup, you should practice adding, modifying, and deleting files from your Projects repository. Check out the TortoiseSVN Daily use guide as it covers areas such as Importing, Checking out, and Resolving conflicts with your repositories. I recommend you read the entire chapter or at least skim over it as there's lots of useful information.


Error Malformed URL for repository

Check that the URL you are using is correct, and that there's no missing /'s etc. Check that all the parameters of your <Location> directive in the Apache config file are correct.

Error PROPFIND request failed on '/' PROPFIND of '/svn/': 403 Forbidden

Check that all the parameters of your <Location> directive in the Apache config file are correct.

8.0 Setting up for ASP.NET website development on Windows XP

Now that you have Subversion setup to store all your website code, you may run into one little problem when developing on Windows XP. Windows XP can only run one website at a time. This can be very tedious when you are developing locally and need to constantly switch between web sites. Having to go into the IIS management console each time is very annoying. The steps below will allow a simple one click process, to switch the web sites home directory.

If all your websites can run within their own virtual directory, then the following setup doesn't apply to you.

You may (and often will) have sites that need to be placed in the root of the website directory in order to work correctly due to them having absolute links and not being .NET controls (style sheets, images etc).

This then presents a problem with running multiple websites on Windows XP. You can only run one website at a time with a true document root. In a future article, I'll show how you can run multiple websites on Windows XP, but for now, there's a way we can simplify switching the root directory of the local website running on your machine.

The following is an example directory structure of how you might check out numerous web sites from Subversion.


Once you have them checked out, to switch the root directory of your website running on your local machine, we are going to use some scripts to add an option to your Windows Explorer.

The steps you would take in switching between projects would be:

  • Close Visual Studio (if already open)
  • Switch the root to the directory you want to work on (right click-> Set IIS home)
  • Open Visual Studio
  • Open desired project file or solution

Note: You'll need to close your Visual Studio Solution/Project when switching between IIS home directories, you may receive an error as mentioned in the error section below if the steps above are not followed.

Follow the steps below to create a menu item in Windows Explorer to simplify switching the websites root folder.

8.1 Let's say you have a directory called C:\websites where you will check out your web sites to work on them locally.
8.2 Create the file set.iis.path.reg and save it to C:\Utils\. Copy and paste the commands below into the file. This entry provides us with a quick one step right click context menu option when you choose the directory you want to set as the IIS root. Run this file.
# set.iis.path.reg #
[HKEY_CLASSES_ROOT\Folder\shell\Set IIS home\command]
@="\"c:\\Utils\\set.iis.path.bat\" \"%1\""
8.3 Create the file set.iis.path.bat and save it to C:\Utils\. Copy and paste the commands below into the file.
# set.iis.path.bat #
@echo off
cscript.exe c:\Inetpub\AdminScripts\adsutil.vbs 
                                         SET /W3SVC/1/ROOT/Path "%1"
rmdir /s /q "C:\C:\Documents and Settings\Ralph\VSWebCache"
Ensure that the last line of the set.iis.path.bat file points to the Visual Studio cache directory of the user who you are logged on as.


When using Visual Studio .NET 2003 why do I see a little blue flag image/icon in the Visual Studio Explorer?

This is because the Visual Studio cache hasn't been deleted as Visual Studio keeps a cache of the last project you opened and is looking for these files.

Environment and developer specific settings

You can achieve environment specific settings using two web.config files, one is the primary settings file and another overrides the primary config file variables with environments specific values. The article Team Development with Visual Studio .NET and Visual SourceSafe gives a good example of how you can achieve this by storing a database connection string for two different environments. Read the chapter Managing Dependencies, and scroll down to the section Referencing Databases for example code.

9.0 Publishing Subversion Repositories using Windows XP/2000/2003

Now that you have your website(s) stored in Subversion, the following steps will help you automatically publish the contents of your repository to your development server. Subversion provides "hooks" for this process. These hooks allow you to trigger scripts or programs when certain events are raised by Subversion.

I've chosen to publish my repository to the development server anytime a user commits some changes. We'll use the post commit hook. You can, for example, hook scripts in the hook directory of where you created your Subversion repository. The hook scripts we created for this tutorial will be found in C:\svn\MyRepository\hooks\. Since we are using Windows, you can name your hook scripts .bat, .exe, .vbs etc.

I've created my hook scripts using bat files, if your not familiar with bat files the DOS batch file programming handbook and tutorial is a great place to start. You could also write VBS scripts or console apps depending on your skills and functional requirements.

To publish a Subversion repository, my bat file follows these steps:

  1. If the Subversion and development server are separate servers, map a drive from the Subversion server to the development server.
  2. Check out the repository you wish to publish to a temporary directory.
  3. Use Robocopy to mirror the temporarily checked out version of your website to the development server directory.

Robocopy is a very powerful utility for directory mirroring, and can be downloaded as part of the Windows Server 2003 Resource Kit Tools. Check out the documentation for other functionality it can provide.

This bat file assumes your Subversion server and development server are two different machines. If they are on the same machine, this obviously simplifies things and the drive mapping is not necessary.

# post-commit.bat #
REM The following variables are passed via the
REM command line to the hook script from Subversion 
REM %1 -> Respository Name
REM %2 -> Revision number

REM Create our mapped drive as .bat files are run
REM by Subversion with NO environment variables set
net use Z: \\Server\TargetShare <pass> 
           /user:Server\<username> /persistent:no >> output.log

REM Check out our example repository to a tempoary directory
svn checkout file:///c:/svn/MyRepository/trunk C:\temp\Site1 >> output.log

REM Use Robocopy to mirror our directories 
REM and exclude from the mirroring certain files and directories.
robocopy C:\temp\Site1 Z:\Site1\wwwroot *.* /S /XF *.cs *.tmp *.dbg 
         *.tmpl *.sln *.csproj *.webinfo /XD .svn _svn /PURGE >> output.log

Note: You'll notice in the script that we direct the output from the commands to a log file; this is handy for debugging, particularly when Subversion is running the script. Robocopy will pump out to the log file a nicely formatted dump of what files have been transferred and other additional info.

Your website has now been published to your development server minus all the unnecessary files.

Revision History

29 Dec 2006
  • Created a better format for article layout
  • Add some formatting that was removed when article was moved to Code Project
  • Added Revision history
  • Fixed up Error messages for each section and links to Microsoft KB articles
  • Removed references section as it was out of context and put links into relevant sections
  • Checked external links to ensure they still work
  • 6.1 - updated as the new Tortise SVN client has option to work around .svn directory issue
  • 7.10 - fixed some broken links to Subversion documentation
22 Aug 2006
  • Original article posted


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Ralph Willgoss
Software Developer
Australia Australia

Comments and Discussions

QuestionLost! Pinmembersugianto.agi1-Nov-09 19:04 
AnswerRe: Lost! PinmemberRalph Willgoss15-Nov-09 1:07 
GeneralBerkeley DB error for filesystem E:/SubversionRepository/db while opening 'nodes' table:No such file or directory. Pinmemberveltech18-Mar-09 0:48 
GeneralRe: Berkeley DB error for filesystem E:/SubversionRepository/db while opening 'nodes' table:No such file or directory. PinmemberRalph Willgoss18-Apr-09 17:12 
GeneralServer sent unepected value(403 forbidden)in response to MKACTIVITY PinmemberKP_Prajilal29-Dec-08 1:43 
General404 file not found PinmemberMember 396291318-Mar-08 8:47 
GeneralRe: 404 file not found PinmemberRalph Willgoss19-Mar-08 1:22 
GeneralRe: 404 file not found PinmemberMember 396291319-Mar-08 6:54 
Generalon typing http://localhost:81/svn i am getting the 404 file not found PinmemberMember 396291318-Mar-08 8:42 
the above is my httpd file can u plz help me in this issue.
# Based upon the NCSA server configuration files originally by Rob McCool.
# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:> for detailed information about
# the directives.
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
# The configuration directives are grouped into three basic sections:
# 1. Directives that control the operation of the Apache server process as a
# whole (the 'global environment').
# 2. Directives that define the parameters of the 'main' or 'default' server,
# which responds to requests that aren't handled by a virtual host.
# These directives also provide default values for the settings
# of all virtual hosts.
# 3. Settings for virtual hosts, which allow Web requests to be sent to
# different IP addresses or hostnames and have them handled by the
# same Apache server process.
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
# with ServerRoot set to "C:/Program Files/Apache Group/Apache2" will be interpreted by the
# server as "C:/Program Files/Apache Group/Apache2/logs/foo.log".
# NOTE: Where filenames are specified, you must use forward slashes
# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
# If a drive letter is omitted, the drive on which Apache.exe is located
# will be used by default. It is recommended that you always supply
# an explicit drive letter in absolute paths, however, to avoid
# confusion.
### Section 1: Global Environment
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests it can handle or where it
# can find its configuration files.
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
# NOTE! If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the LockFile documentation (available
# at <URL:>);
# you will save yourself a lot of trouble.
# Do NOT add a slash at the end of the directory path.
ServerRoot "C:/Program Files/Apache Group/Apache2"
# ScoreBoardFile: File used to store internal server process information.
# If unspecified (the default), the scoreboard will be stored in an
# anonymous shared memory segment, and will be unavailable to third-party
# applications.
# If specified, ensure that no two invocations of Apache share the same
# scoreboard file. The scoreboard file MUST BE STORED ON A LOCAL DISK.
#ScoreBoardFile logs/apache_runtime_status
# PidFile: The file in which the server should record its process
# identification number when it starts.
PidFile logs/
# Timeout: The number of seconds before receives and sends time out.
Timeout 300
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
KeepAlive On
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
MaxKeepAliveRequests 100
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
KeepAliveTimeout 15
## Server-Pool Size Regulation (MPM specific)
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 0
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (
Listen 81
# Dynamic Shared Object (DSO) Support
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
# Example:
# LoadModule foo_module modules/
LoadModule access_module modules/
LoadModule actions_module modules/
LoadModule alias_module modules/
LoadModule asis_module modules/
LoadModule auth_module modules/
#LoadModule auth_anon_module modules/
#LoadModule auth_dbm_module modules/
#LoadModule auth_digest_module modules/
LoadModule autoindex_module modules/
#LoadModule cern_meta_module modules/
LoadModule cgi_module modules/
#LoadModule dav_module modules/
#LoadModule dav_fs_module modules/
LoadModule dir_module modules/
LoadModule env_module modules/
#LoadModule expires_module modules/
#LoadModule file_cache_module modules/
#LoadModule headers_module modules/
LoadModule imap_module modules/
LoadModule include_module modules/
#LoadModule info_module modules/
LoadModule isapi_module modules/
LoadModule log_config_module modules/
LoadModule mime_module modules/
#LoadModule mime_magic_module modules/
#LoadModule proxy_module modules/
#LoadModule proxy_connect_module modules/
#LoadModule proxy_http_module modules/
#LoadModule proxy_ftp_module modules/
LoadModule negotiation_module modules/
#LoadModule rewrite_module modules/
LoadModule setenvif_module modules/
#LoadModule speling_module modules/
#LoadModule status_module modules/
#LoadModule unique_id_module modules/
LoadModule userdir_module modules/
#LoadModule usertrack_module modules/
#LoadModule vhost_alias_module modules/
#LoadModule ssl_module modules/
# ExtendedStatus controls whether Apache will generate "full" status
# information (ExtendedStatus On) or just basic information (ExtendedStatus
# Off) when the "server-status" handler is called. The default is Off.
#ExtendedStatus On
### Section 2: 'Main' server configuration
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g.
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work. See also the UseCanonicalName directive.
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
# UseCanonicalName: Determines how Apache constructs self-referencing
# URLs and the SERVER_NAME and SERVER_PORT variables.
# When set "Off", Apache will use the Hostname and Port supplied
# by the client. When set "On", Apache will use the value of the
# ServerName directive.
UseCanonicalName Off
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
# First, we configure the "default" to be a very restrictive set of
# features.
<Directory />
Options FollowSymLinks
AllowOverride None
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
# This should be changed to whatever you set DocumentRoot to.
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
# The Options directive is both complicated and important. Please see
# for more information.
Options Indexes FollowSymLinks
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
AllowOverride None
# Controls who can get stuff from this server.
Order allow,deny
Allow from all
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received. Be especially careful to use
# proper, forward slashes here. On Windows NT, "Personal/My Website"
# is a more appropriate choice.
UserDir "My Documents/My Website"
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
# You must correct the path for the root to match your system's configured
# user directory location, e.g. "C:/WinNT/profiles/*/My Documents/My Website"
# or whichever, as appropriate.
#<Directory "C:/Documents and Settings/*/My Documents/My Website">
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# Order allow,deny
# Allow from all
# </Limit>
# Order deny,allow
# Deny from all
# </LimitExcept>
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
DirectoryIndex index.html index.html.var
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives. See also the AllowOverride
# directive.
AccessFileName .htaccess
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
<Files ~ "^\.ht">
Order allow,deny
Deny from all
# TypesConfig describes where the mime.types file (or equivalent) is
# to be found.
TypesConfig conf/mime.types
# DefaultType is the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value. If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
DefaultType text/plain
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type. The MIMEMagicFile
# directive tells the module where the hint definitions are located.
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., (on) or (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
HostnameLookups Off
# EnableMMAP: Control whether memory-mapping is used to deliver
# files (assuming that the underlying OS supports it).
# The default is on; turn this off if you serve from NFS-mounted
# filesystems. On some systems, turning it off (regardless of
# filesystem) can improve performance; for details, please see
#EnableMMAP off
# EnableSendfile: Control whether the sendfile kernel support is
# used to deliver files (assuming that the OS supports it).
# The default is on; turn this off if you serve from NFS-mounted
# filesystems. Please see
#EnableSendfile off
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
ErrorLog logs/error.log
# LogLevel: Control the number of messages logged to the error.log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# You need to enable mod_logio.c to use %I and %O
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
CustomLog logs/access.log common
# If you would like to have agent and referer logfiles, uncomment the
# following directives.
#CustomLog logs/referer.log referer
#CustomLog logs/agent.log agent
# If you prefer a single logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#CustomLog logs/access.log combined
# ServerTokens
# This directive configures what you return as the Server HTTP response
# Header. The default is 'Full' which sends information about the OS-Type
# and compiled in modules.
# Set to one of: Full | OS | Minor | Minimal | Major | Prod
# where Full conveys the most information, and Prod the least.
ServerTokens Full
# Optionally add a line containing the server version and virtual host
# name to server-generated pages (internal error documents, FTP directory
# listings, mod_status and mod_info output etc., but not CGI generated
# documents or custom error documents).
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
# Set to one of: On | Off | EMail
ServerSignature On
# Aliases: Add here as many aliases as you need (with no limit). The format is
# Alias fakename realname
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL. So "/icons" isn't aliased in this
# example, only "/icons/". If the fakename is slash-terminated, then the
# realname must also be slash terminated, and if the fakename omits the
# trailing slash, the realname must also omit it.
# We include the /icons/ alias for FancyIndexed directory listings. If you
# do not use FancyIndexing, you may comment this out.
Alias /icons/ "C:/Program Files/Apache Group/Apache2/icons/"
<Directory "C:/Program Files/Apache Group/Apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
# This should be changed to the ServerRoot/manual/. The alias provides
# the manual, even if you choose to move your DocumentRoot. You may comment
# this out if you do not care for the documentation.
AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "C:/Program Files/Apache Group/Apache2/manual$1"
<Directory "C:/Program Files/Apache Group/Apache2/manual">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
<Files *.html>
SetHandler type-map
SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru)/ prefer-language=$1
RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache2/cgi-bin/"
# "C:/Program Files/Apache Group/Apache2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
# Redirect allows you to tell clients about documents which used to exist in
# your server's namespace, but do not anymore. This allows you to tell the
# clients where to look for the relocated document.
# Example:
# Redirect permanent /foo
# Directives controlling the display of server-generated directory listings.
# IndexOptions: Controls the appearance of server-generated directory
# listings.
IndexOptions FancyIndexing VersionSort
# AddIcon* directives tell the server which icon to show for different
# files or filename extensions. These are only displayed for
# FancyIndexed directories.
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# DefaultIcon is which icon to show for files which do not have an icon
# explicitly set.
DefaultIcon /icons/unknown.gif
# AddDescription allows you to place a short description after a file in
# server-generated indexes. These are only displayed for FancyIndexed
# directories.
# Format: AddDescription "description" filename
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
# ReadmeName is the name of the README file the server will look for by
# default, and append to directory listings.
# HeaderName is the name of a file which should be prepended to
# directory indexes.
ReadmeName README.html
HeaderName HEADER.html
# IndexIgnore is a set of filenames which directory indexing should ignore
# and not include in the listing. Shell-style wildcarding is permitted.
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
# DefaultLanguage and AddLanguage allows you to specify the language of
# a document. You can then use content negotiation to give a browser a
# file in a language the user can understand.
# Specify a default language. This means that all data
# going out without a specific language tag (see below) will
# be marked with this one. You probably do NOT want to set
# this unless you are sure it is correct for all cases.
# * It is generally better to not mark a page as
# * being a certain language than marking it with the wrong
# * language!
# DefaultLanguage nl
# Note 1: The suffix does not have to be the same as the language
# keyword --- those with documents in Polish (whose net-standard
# language code is pl) may wish to use "AddLanguage pl .po" to
# avoid the ambiguity with the common suffix for perl scripts.
# Note 2: The example entries below illustrate that in some cases
# the two character 'Language' abbreviation is not identical to
# the two character 'Country' code for its country,
# E.g. 'Danmark/dk' versus 'Danish/da'.
# Note 3: In the case of 'ltz' we violate the RFC by using a three char
# specifier. There is 'work in progress' to fix this and get
# the reference data for rfc1766 cleaned up.
# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
# Norwegian (no) - Polish (pl) - Portugese (pt)
# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
# LanguagePriority allows you to give precedence to some languages
# in case of a tie during content negotiation.
# Just list the languages in decreasing order of preference. We have
# more or less alphabetized them here. You probably want to change this.
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
# ForceLanguagePriority allows you to serve a result page rather than
# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
# [in case no accepted languages matched the available variants]
ForceLanguagePriority Prefer Fallback
# Commonly used filename extensions to character sets. You probably
# want to avoid clashes with the language extensions, unless you
# are good at carefully testing your setup after each change.
# See for the
# official list of charset names and their respective RFCs.
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
# For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
# The set below does not map to a specific (iso) standard
# but works on a fairly wide range of browsers. Note that
# capitalization actually matters (it should not, but it
# does for some browsers).
# See
# for a list of sorts. But browsers support few.
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#AddType application/x-tar .tgz
# AddEncoding allows you to have certain browsers (Mosaic/X 2.1+) uncompress
# information on the fly. Note: Not all browsers support this.
# Despite the name similarity, the following Add* directives have nothing
# to do with the FancyIndexing customization directives above.
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#AddHandler cgi-script .cgi
# For files that include their own HTTP headers:
#AddHandler send-as-is asis
# For server-parsed imagemap files:
#AddHandler imap-file map
# For type maps (negotiated resources):
# (This is enabled by default to allow the Apache "It Worked" page
# to be distributed in multiple languages.)
AddHandler type-map var
# Filters allow you to process content before it is sent to the client.
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
# Action lets you define media types that will execute a script whenever
# a matching file is called. This eliminates the need for repeated URL
# pathnames for oft-used CGI file processors.
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/"
#ErrorDocument 402
# Putting this all together, we can internationalize error responses.
# We use Alias to redirect any /error/HTTP_<error>.html.var response to
# our collection of by-error message multi-language collections. We use
# includes to substitute the appropriate text.
# You can modify the messages' appearance without changing any of the
# default HTTP_<error>.html.var files by adding the line:
# Alias /error/include/ "/your/include/path/"
# which allows you to create your own set of files by starting with the
# @exp_errordir@/include/ files and copying them to /your/include/path/,
# even on a per-VirtualHost basis. The default include files will display
# your Apache version number and your ServerAdmin email address regardless
# of the setting of ServerSignature.
# The internationalized error documents require mod_alias, mod_include
# and mod_negotiation. To activate them, uncomment the following 30 lines.
# Alias /error/ "@exp_errordir@/"
# <Directory "@exp_errordir@">
# AllowOverride None
# Options IncludesNoExec
# AddOutputFilter Includes html
# AddHandler type-map var
# Order allow,deny
# Allow from all
# LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr
# ForceLanguagePriority Prefer Fallback
# </Directory>
# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
# ErrorDocument 410 /error/HTTP_GONE.html.var
# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

# The following directives modify normal HTTP response behavior to
# handle known problems with browser implementations.
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
# The following directive disables redirects on non-GET requests for
# a directory that does not include the trailing slash. This fixes a
# problem with Microsoft WebFolders which does not appropriately handle
# redirects for folders with DAV methods.
# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the "" to match your domain to enable.
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from
# Allow remote server configuration reports, with the URL of
# http://servername/server-info (requires that mod_info.c be loaded).
# Change the "" to match your domain to enable.
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from

# Bring in additional module-specific configurations
<IfModule mod_ssl.c>
Include conf/ssl.conf

### Section 3: Virtual Hosts
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
# Please see the documentation at
# <URL:>
# for further details before you try to setup virtual hosts.
# You may use the command line option '-S' to verify your virtual host
# configuration.
# Use name-based virtual hosting.
#NameVirtualHost *:80
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#<VirtualHost *:80>
# ServerAdmin
# DocumentRoot /www/docs/
# ServerName
# ErrorLog logs/
# CustomLog logs/ common
# DAV svn
# SVNParentPath C:\svn
# AuthType Basic
# AuthName "Subversion repositories"
# AuthUserFile passwd
# AuthzSVNAccessFile svnaccessfile
# Require valid-user

Questionsvn error.. Pinmembernikhildharap2-Oct-07 1:47 
AnswerRe: svn error.. PinmemberRalph Willgoss2-Oct-07 8:26 
GeneralRe: svn error.. [modified] Pinmembernikhildharap2-Oct-07 20:22 
QuestionRe: svn error.. Pinmembernikhildharap5-Oct-07 2:02 
GeneralRe: svn error.. PinmemberRalph Willgoss2-Feb-08 17:32 
GeneralRe: svn error.. PinmemberJoshua Rountree18-Feb-08 6:45 
GeneralRe: svn error.. PinmemberRalph Willgoss26-Feb-08 16:02 
GeneralSVN tagging fails in only 1 of the machines Pinmemberginnex15-Jul-07 18:54 
GeneralRe: SVN tagging fails in only 1 of the machines PinmemberRalph Willgoss25-Jul-07 3:18 
AnswerRe: SVN tagging fails in only 1 of the machines Pinmemberginnex31-Jul-07 1:11 
GeneralExcellent work and well written article... PinmemberGillSurjeet20-Jun-07 19:39 
GeneralRe: Excellent work and well written article... PinmemberRalph Willgoss23-Jun-07 21:54 
GeneralHTTP 500 Error Pinmemberdosborn2783-May-07 16:52 
GeneralRe: HTTP 500 Error Pinmemberdosborn2785-May-07 13:02 
Generalhaving some problem.. [modified] Pinmembermanni_n23-Apr-07 12:04 
GeneralRe: having some problem.. PinmemberRalph Willgoss24-Apr-07 3:20 
GeneralRe: having some problem.. Pinmembermanni_n24-Apr-07 10:46 
GeneralSVN Server install Pinmembertonkster200311-Mar-07 13:17 
GeneralRe: SVN Server install PinmemberRalph Willgoss21-Mar-07 15:14 
GeneralRe: SVN Server install Pinmembertonkster200321-Mar-07 17:30 
GeneralSVN Server instal Pinmembertonkster200311-Mar-07 13:13 
QuestionApache: &quot;The requesed operation has failed&quot; Pinmembernotken23-Feb-07 9:01 
AnswerRe: Apache: &quot;The requesed operation has failed&quot; Pinmembertamalkuet28-Feb-07 2:47 
AnswerRe: Apache: &quot;The requesed operation has failed&quot; Pinmembertamalkuet28-Feb-07 19:29 
GeneralRe: Apache: &quot;The requesed operation has failed&quot; Pinmembernotken28-Feb-07 22:16 
GeneralRe: Apache: &quot;The requesed operation has failed&quot; PinmemberRalph Willgoss1-Mar-07 0:56 
AnswerRe: Apache: &quot;The requesed operation has failed&quot; PinmemberRalph Willgoss2-Mar-07 2:03 
AnswerRe: Apache: &quot;The requesed operation has failed&quot; PinmemberSteveKing31-Mar-07 22:08 
GeneralIntegrating with VS.NET PinmemberFernando Arámburu9-Jan-07 3:03 
GeneralRe: Integrating with VS.NET PinmemberRalph Willgoss20-Jan-07 14:26 
GeneralRe: Integrating with VS.NET PinmemberFernando Arámburu21-Jan-07 16:16 
GeneralExcellent Article PinmemberInformerX4U5-Jan-07 4:43 
GeneralRe: Excellent Article PinmemberRalph Willgoss8-Jan-07 12:51 
GeneralUpdate to SVN 1.4 PinmemberVolleyknaller4-Jan-07 4:10 
GeneralRe: Update to SVN 1.4 PinmemberRalph Willgoss8-Jan-07 12:47 
Generalrecommended way to add web projects to subversion PinmemberZoggs15-Dec-06 13:19 
GeneralRe: recommended way to add web projects to subversion PinmemberRalph Willgoss16-Dec-06 21:11 
QuestionApache module DSO Pinmembernandas7-Dec-06 23:07 
AnswerRe: Apache module DSO PinmemberRalph Willgoss14-Dec-06 12:31 
GeneralRe: Apache module DSO Pinmembernandas18-Dec-06 1:22 
GeneralThanks PinmemberOsama Askari25-Nov-06 3:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.141223.1 | Last Updated 4 Jan 2007
Article Copyright 2006 by Ralph Willgoss
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid