##

Syntax: <VirtualHost addr[:port\] ...> ... </VirtualHost>
Context: server config
Status: Core.
Compatibility: Non-IP address-based Virtual Hosting only available in Apache 1.1 and later.
Compatibility: Multiple address support only available in Apache 1.2 and later.

<VirtualHost> and </VirtualHost> are used to enclose a group of directives which will apply only to a particular virtual host. Any directive which is allowed in a virtual host context may be used. When the server receives a request for a document on a particular virtual host, it uses the configuration directives enclosed in the <VirtualHost> section. Addr can be

- The IP address of the virtual host
- A fully qualified domain name for the IP address of the virtual host.

Example:

> `<VirtualHost 10.1.2.3>
> ServerAdmin webmaster@host.foo.com
> DocumentRoot /www/docs/host.foo.com
> ServerName host.foo.com
> ErrorLog logs/host.foo.com-error_log
> TransferLog logs/host.foo.com-access_log
> </VirtualHost>`

Each VirtualHost must correspond to a different IP address, different port number or a different host name for the server, in the latter case the server machine must be configured to accept IP packets for multiple addresses. (If the machine does not have multiple network interfaces, then this can be accomplished with the `ifconfig alias` command (if your OS supports it), or with kernel patches like VIF (for SunOS(TM) 4.1.x)).

The special name `_default_` can be specified in which case this virtual host will match any IP address that is not explicitly listed in another virtual host. In the absence of any _default_ virtual host the "main" server config, consisting of all those definitions outside any VirtualHost section, is used when no match occurs.

You can specify a `:port` to change the port that is matched. If unspecified then it defaults to the same port as the most recent `Port` statement of the main server. You may also specify `:*` to match all ports on that address. (This is recommended when used with `_default_`.)

SECURITY: See the security tips document for details on why your security could be compromised if the directory where logfiles are stored is writable by anyone other than the user that starts the server.

NOTE: The use of <VirtualHost> does not affect what addresses Apache listens on. You may need to ensure that Apache is listening on the correct addresses using either BindAddress or Listen.

See also: Apache Virtual Host documentation
See also: Warnings about DNS and Apache
See also: Setting which addresses and ports Apache uses
See also: How Directory, Location and Files sections work for an explanation of how these different sections are combined when a request is received