1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>VirtualHost Examples - Apache HTTP Server</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body id="manual-page"><div id="page-header">
17<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
18<p class="apache">Apache HTTP Server Version 2.4</p>
19<img alt="" src="/images/feather.gif" /></div>
20<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Virtual Hosts</a></div><div id="page-content"><div id="preamble"><h1>VirtualHost Examples</h1>
23<div class="toplang">
24<p><span>Available Languages: </span><a href="/en/vhosts/examples.html" title="English">&nbsp;en&nbsp;</a> |
25<a href="/fr/vhosts/examples.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
26<a href="/ja/vhosts/examples.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
27<a href="/ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28<a href="/tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
29</div>
30
31
32    <p>This document attempts to answer the commonly-asked questions about
33    setting up <a href="index.html">virtual hosts</a>. These scenarios are those involving multiple
34    web sites running on a single server, via <a href="name-based.html">name-based</a> or <a href="ip-based.html">IP-based</a> virtual hosts.
35    </p>
36
37</div>
38<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#purename">Running several name-based web
39    sites on a single IP address.</a></li>
40<li><img alt="" src="/images/down.gif" /> <a href="#twoips">Name-based hosts on more than one
41    IP address.</a></li>
42<li><img alt="" src="/images/down.gif" /> <a href="#intraextra">Serving the same content on
43    different IP addresses (such as an internal and external
44    address).</a></li>
45<li><img alt="" src="/images/down.gif" /> <a href="#port">Running different sites on different
46    ports.</a></li>
47<li><img alt="" src="/images/down.gif" /> <a href="#ip">IP-based virtual hosting</a></li>
48<li><img alt="" src="/images/down.gif" /> <a href="#ipport">Mixed port-based and ip-based virtual
49  hosts</a></li>
50<li><img alt="" src="/images/down.gif" /> <a href="#mixed">Mixed name-based and IP-based
51    vhosts</a></li>
52<li><img alt="" src="/images/down.gif" /> <a href="#proxy">Using <code>Virtual_host</code> and
53    mod_proxy together</a></li>
54<li><img alt="" src="/images/down.gif" /> <a href="#default">Using <code>_default_</code>
55    vhosts</a></li>
56<li><img alt="" src="/images/down.gif" /> <a href="#migrate">Migrating a name-based vhost to an
57    IP-based vhost</a></li>
58<li><img alt="" src="/images/down.gif" /> <a href="#serverpath">Using the <code>ServerPath</code>
59  directive</a></li>
60</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
61<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
62<div class="section">
63<h2><a name="purename" id="purename">Running several name-based web
64    sites on a single IP address.</a></h2>
65
66    <p>Your server has a single IP address, and multiple aliases (CNAMES)
67    point to this machine in DNS. You want to run a web server for
68    <code>www.example.com</code> and <code>www.example.org</code> on this
69    machine.</p>
70
71    <div class="note"><h3>Note</h3><p>Creating virtual
72          host configurations on your Apache server does not magically
73          cause DNS entries to be created for those host names. You
74          <em>must</em> have the names in DNS, resolving to your IP
75          address, or nobody else will be able to see your web site. You
76          can put entries in your <code>hosts</code> file for local
77          testing, but that will work only from the machine with those
78          <code>hosts</code> entries.</p>
79    </div>
80
81    <pre class="prettyprint lang-config"># Ensure that Apache listens on port 80
82Listen 80
83&lt;VirtualHost *:80&gt;
84    DocumentRoot /www/example1
85    ServerName www.example.com
86  
87    # Other directives here
88&lt;/VirtualHost&gt;
89
90&lt;VirtualHost *:80&gt;
91    DocumentRoot /www/example2
92    ServerName www.example.org
93
94    # Other directives here
95&lt;/VirtualHost&gt;</pre>
96
97
98    <p>The asterisks match all addresses, so the main server serves no
99    requests. Due to the fact that the virtual host with
100    <code>ServerName www.example.com</code> is first
101    in the configuration file, it has the highest priority and can be seen
102    as the <cite>default</cite> or <cite>primary</cite> server. That means
103    that if a request is received that does not match one of the specified
104    <code>ServerName</code> directives, it will be served by this first
105    <code>VirtualHost</code>.</p>
106
107    <div class="note">
108            <h3>Note</h3>
109
110           <p>You can, if you wish, replace <code>*</code> with the actual
111           IP address of the system, when you don't care to discriminate based
112           on the IP address or port.</p>
113
114           <p>However, it is additionally useful to use <code>*</code>
115           on systems where the IP address is not predictable - for
116           example if you have a dynamic IP address with your ISP, and
117           you are using some variety of dynamic DNS solution. Since
118           <code>*</code> matches any IP address, this configuration
119           would work without changes whenever your IP address
120           changes.</p>
121    </div>
122
123    <p>The above configuration is what you will want to use in almost
124    all name-based virtual hosting situations. The only thing that this
125    configuration will not work for, in fact, is when you are serving
126    different content based on differing IP addresses or ports.</p>
127
128  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
129<div class="section">
130<h2><a name="twoips" id="twoips">Name-based hosts on more than one
131    IP address.</a></h2>
132
133    <div class="note">
134      <h3>Note</h3>
135      <p>Any of the techniques discussed here can be extended to any
136      number of IP addresses.</p>
137    </div>
138
139    <p>The server has two IP addresses. On one (<code>172.20.30.40</code>), we
140    will serve the "main" server, <code>server.example.com</code> and on the
141    other (<code>172.20.30.50</code>), we will serve two or more virtual hosts.</p>
142
143    <pre class="prettyprint lang-config">Listen 80
144
145# This is the "main" server running on 172.20.30.40
146ServerName server.example.com
147DocumentRoot /www/mainserver
148
149&lt;VirtualHost 172.20.30.50&gt;
150    DocumentRoot /www/example1
151    ServerName www.example.com
152    
153    # Other directives here ...
154&lt;/VirtualHost&gt;
155
156&lt;VirtualHost 172.20.30.50&gt;
157    DocumentRoot /www/example2
158    ServerName www.example.org
159    
160    # Other directives here ...
161&lt;/VirtualHost&gt;</pre>
162
163
164    <p>Any request to an address other than <code>172.20.30.50</code> will be
165    served from the main server. A request to <code>172.20.30.50</code> with an
166    unknown hostname, or no <code>Host:</code> header, will be served from
167    <code>www.example.com</code>.</p>
168
169  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
170<div class="section">
171<h2><a name="intraextra" id="intraextra">Serving the same content on
172    different IP addresses (such as an internal and external
173    address).</a></h2>
174
175    <p>The server machine has two IP addresses (<code>192.168.1.1</code>
176    and <code>172.20.30.40</code>). The machine is sitting between an
177    internal (intranet) network and an external (internet) network. Outside
178    of the network, the name <code>server.example.com</code> resolves to
179    the external address (<code>172.20.30.40</code>), but inside the
180    network, that same name resolves to the internal address
181    (<code>192.168.1.1</code>).</p>
182
183    <p>The server can be made to respond to internal and external requests
184    with the same content, with just one <code>VirtualHost</code>
185    section.</p>
186
187    <pre class="prettyprint lang-config">&lt;VirtualHost 192.168.1.1 172.20.30.40&gt;
188    DocumentRoot /www/server1
189    ServerName server.example.com
190    ServerAlias server
191&lt;/VirtualHost&gt;</pre>
192
193
194    <p>Now requests from both networks will be served from the same
195    <code>VirtualHost</code>.</p>
196
197    <div class="note">
198          <h3>Note:</h3><p>On the internal
199          network, one can just use the name <code>server</code> rather
200          than the fully qualified host name
201          <code>server.example.com</code>.</p>
202
203          <p>Note also that, in the above example, you can replace the list
204          of IP addresses with <code>*</code>, which will cause the server to
205          respond the same on all addresses.</p>
206    </div>
207
208  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
209<div class="section">
210<h2><a name="port" id="port">Running different sites on different
211    ports.</a></h2>
212
213    <p>You have multiple domains going to the same IP and also want to
214    serve multiple ports.  The example below illustrates that the name-matching
215    takes place after the best matching IP address and port combination
216    is determined.</p>
217
218    <pre class="prettyprint lang-config">Listen 80
219Listen 8080
220
221&lt;VirtualHost 172.20.30.40:80&gt;
222    ServerName www.example.com
223    DocumentRoot /www/domain-80
224&lt;/VirtualHost&gt;
225
226&lt;VirtualHost 172.20.30.40:8080&gt;
227    ServerName www.example.com
228    DocumentRoot /www/domain-8080
229&lt;/VirtualHost&gt;
230
231&lt;VirtualHost 172.20.30.40:80&gt;
232    ServerName www.example.org
233    DocumentRoot /www/otherdomain-80
234&lt;/VirtualHost&gt;
235
236&lt;VirtualHost 172.20.30.40:8080&gt;
237    ServerName www.example.org
238    DocumentRoot /www/otherdomain-8080
239&lt;/VirtualHost&gt;</pre>
240
241
242  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
243<div class="section">
244<h2><a name="ip" id="ip">IP-based virtual hosting</a></h2>
245
246    <p>The server has two IP addresses (<code>172.20.30.40</code> and
247    <code>172.20.30.50</code>) which resolve to the names
248    <code>www.example.com</code> and <code>www.example.org</code>
249    respectively.</p>
250
251    <pre class="prettyprint lang-config">Listen 80
252
253&lt;VirtualHost 172.20.30.40&gt;
254    DocumentRoot /www/example1
255    ServerName www.example.com
256&lt;/VirtualHost&gt;
257
258&lt;VirtualHost 172.20.30.50&gt;
259    DocumentRoot /www/example2
260    ServerName www.example.org
261&lt;/VirtualHost&gt;</pre>
262
263
264    <p>Requests for any address not specified in one of the
265    <code>&lt;VirtualHost&gt;</code> directives (such as
266    <code>localhost</code>, for example) will go to the main server, if
267    there is one.</p>
268
269  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
270<div class="section">
271<h2><a name="ipport" id="ipport">Mixed port-based and ip-based virtual
272  hosts</a></h2>
273
274    <p>The server machine has two IP addresses (<code>172.20.30.40</code> and
275    <code>172.20.30.50</code>) which resolve to the names
276    <code>www.example.com</code> and <code>www.example.org</code>
277    respectively. In each case, we want to run hosts on ports 80 and
278    8080.</p>
279
280    <pre class="prettyprint lang-config">Listen 172.20.30.40:80
281Listen 172.20.30.40:8080
282Listen 172.20.30.50:80
283Listen 172.20.30.50:8080
284
285&lt;VirtualHost 172.20.30.40:80&gt;
286    DocumentRoot /www/example1-80
287    ServerName www.example.com
288&lt;/VirtualHost&gt;
289
290&lt;VirtualHost 172.20.30.40:8080&gt;
291    DocumentRoot /www/example1-8080
292    ServerName www.example.com
293&lt;/VirtualHost&gt;
294
295&lt;VirtualHost 172.20.30.50:80&gt;
296    DocumentRoot /www/example2-80
297    ServerName www.example.org
298&lt;/VirtualHost&gt;
299
300&lt;VirtualHost 172.20.30.50:8080&gt;
301    DocumentRoot /www/example2-8080
302    ServerName www.example.org
303&lt;/VirtualHost&gt;</pre>
304
305
306  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
307<div class="section">
308<h2><a name="mixed" id="mixed">Mixed name-based and IP-based
309    vhosts</a></h2>
310
311    <p>Any address mentioned in the argument to a virtualhost that never
312    appears in another virtual host is a strictly IP-based virtual host.</p>
313
314    <pre class="prettyprint lang-config">Listen 80
315&lt;VirtualHost 172.20.30.40&gt;
316    DocumentRoot /www/example1
317    ServerName www.example.com
318&lt;/VirtualHost&gt;
319
320&lt;VirtualHost 172.20.30.40&gt;
321    DocumentRoot /www/example2
322    ServerName www.example.org
323&lt;/VirtualHost&gt;
324
325&lt;VirtualHost 172.20.30.40&gt;
326    DocumentRoot /www/example3
327    ServerName www.example.net
328&lt;/VirtualHost&gt;
329
330# IP-based
331&lt;VirtualHost 172.20.30.50&gt;
332    DocumentRoot /www/example4
333    ServerName www.example.edu
334&lt;/VirtualHost&gt;
335
336&lt;VirtualHost 172.20.30.60&gt;
337    DocumentRoot /www/example5
338    ServerName www.example.gov
339&lt;/VirtualHost&gt;</pre>
340
341
342  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
343<div class="section">
344<h2><a name="proxy" id="proxy">Using <code>Virtual_host</code> and
345    mod_proxy together</a></h2>
346
347    <p>The following example allows a front-end machine to proxy a
348    virtual host through to a server running on another machine. In the
349    example, a virtual host of the same name is configured on a machine
350    at <code>192.168.111.2</code>. The <code class="directive"><a href="/mod/mod_proxy.html#proxypreservehost">ProxyPreserveHost
351    On</a></code> directive is used so that the desired hostname is
352    passed through, in case we are proxying multiple hostnames to a
353    single machine.</p>
354
355    <pre class="prettyprint lang-config">&lt;VirtualHost *:*&gt;
356    ProxyPreserveHost On
357    ProxyPass / http://192.168.111.2/
358    ProxyPassReverse / http://192.168.111.2/
359    ServerName hostname.example.com
360&lt;/VirtualHost&gt;</pre>
361
362
363    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
364<div class="section">
365<h2><a name="default" id="default">Using <code>_default_</code>
366    vhosts</a></h2>
367
368    <h3><a name="defaultallports" id="defaultallports"><code>_default_</code> vhosts
369    for all ports</a></h3>
370
371    <p>Catching <em>every</em> request to any unspecified IP address and
372    port, <em>i.e.</em>, an address/port combination that is not used for
373    any other virtual host.</p>
374
375    <pre class="prettyprint lang-config">&lt;VirtualHost _default_:*&gt;
376    DocumentRoot /www/default
377&lt;/VirtualHost&gt;</pre>
378
379
380    <p>Using such a default vhost with a wildcard port effectively prevents
381    any request going to the main server.</p>
382
383    <p>A default vhost never serves a request that was sent to an
384    address/port that is used for name-based vhosts. If the request
385    contained an unknown or no <code>Host:</code> header it is always
386    served from the primary name-based vhost (the vhost for that
387    address/port appearing first in the configuration file).</p>
388
389    <p>You can use <code class="directive"><a href="/mod/mod_alias.html#aliasmatch">AliasMatch</a></code> or
390    <code class="directive"><a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> to rewrite any
391    request to a single information page (or script).</p>
392    
393
394    <h3><a name="defaultdifferentports" id="defaultdifferentports"><code>_default_</code> vhosts
395    for different ports</a></h3>
396
397    <p>Same as setup 1, but the server listens on several ports and we want
398    to use a second <code>_default_</code> vhost for port 80.</p>
399
400    <pre class="prettyprint lang-config">&lt;VirtualHost _default_:80&gt;
401    DocumentRoot /www/default80
402    # ...
403&lt;/VirtualHost&gt;
404
405&lt;VirtualHost _default_:*&gt;
406    DocumentRoot /www/default
407    # ...
408&lt;/VirtualHost&gt;</pre>
409
410
411    <p>The default vhost for port 80 (which <em>must</em> appear before any
412    default vhost with a wildcard port) catches all requests that were sent
413    to an unspecified IP address. The main server is never used to serve a
414    request.</p>
415    
416
417    <h3><a name="defaultoneport" id="defaultoneport"><code>_default_</code> vhosts
418    for one port</a></h3>
419
420    <p>We want to have a default vhost for port 80, but no other default
421    vhosts.</p>
422
423    <pre class="prettyprint lang-config">&lt;VirtualHost _default_:80&gt;
424DocumentRoot /www/default
425...
426&lt;/VirtualHost&gt;</pre>
427
428
429    <p>A request to an unspecified address on port 80 is served from the
430    default vhost. Any other request to an unspecified address and port is
431    served from the main server.</p>
432
433    <p>Any use of <code>*</code> in a virtual host declaration will have
434    higher precedence than <code>_default_</code>.</p>
435
436    
437
438  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
439<div class="section">
440<h2><a name="migrate" id="migrate">Migrating a name-based vhost to an
441    IP-based vhost</a></h2>
442
443    <p>The name-based vhost with the hostname
444    <code>www.example.org</code> (from our <a href="#name">name-based</a> example, setup 2) should get its own IP
445    address. To avoid problems with name servers or proxies who cached the
446    old IP address for the name-based vhost we want to provide both
447    variants during a migration phase.</p>
448
449    <p>
450     The solution is easy, because we can simply add the new IP address
451    (<code>172.20.30.50</code>) to the <code>VirtualHost</code>
452    directive.</p>
453
454    <pre class="prettyprint lang-config">Listen 80
455ServerName www.example.com
456DocumentRoot /www/example1
457
458&lt;VirtualHost 172.20.30.40 172.20.30.50&gt;
459    DocumentRoot /www/example2
460    ServerName www.example.org
461    # ...
462&lt;/VirtualHost&gt;
463
464&lt;VirtualHost 172.20.30.40&gt;
465    DocumentRoot /www/example3
466    ServerName www.example.net
467    ServerAlias *.example.net
468    # ...
469&lt;/VirtualHost&gt;</pre>
470
471
472    <p>The vhost can now be accessed through the new address (as an
473    IP-based vhost) and through the old address (as a name-based
474    vhost).</p>
475
476  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
477<div class="section">
478<h2><a name="serverpath" id="serverpath">Using the <code>ServerPath</code>
479  directive</a></h2>
480
481    <p>We have a server with two name-based vhosts. In order to match the
482    correct virtual host a client must send the correct <code>Host:</code>
483    header. Old HTTP/1.0 clients do not send such a header and Apache has
484    no clue what vhost the client tried to reach (and serves the request
485    from the primary vhost). To provide as much backward compatibility as
486    possible we create a primary vhost which returns a single page
487    containing links with an URL prefix to the name-based virtual
488    hosts.</p>
489
490    <pre class="prettyprint lang-config">&lt;VirtualHost 172.20.30.40&gt;
491    # primary vhost
492    DocumentRoot /www/subdomain
493    RewriteEngine On
494    RewriteRule . /www/subdomain/index.html
495    # ...
496&lt;/VirtualHost&gt;
497
498&lt;VirtualHost 172.20.30.40&gt;
499DocumentRoot /www/subdomain/sub1
500    ServerName www.sub1.domain.tld
501    ServerPath /sub1/
502    RewriteEngine On
503    RewriteRule ^(/sub1/.*) /www/subdomain$1
504    # ...
505&lt;/VirtualHost&gt;
506
507&lt;VirtualHost 172.20.30.40&gt;
508    DocumentRoot /www/subdomain/sub2
509    ServerName www.sub2.domain.tld
510    ServerPath /sub2/
511    RewriteEngine On
512    RewriteRule ^(/sub2/.*) /www/subdomain$1
513    # ...
514&lt;/VirtualHost&gt;</pre>
515
516
517    <p>Due to the <code class="directive"><a href="/mod/core.html#serverpath">ServerPath</a></code>
518    directive a request to the URL
519    <code>http://www.sub1.domain.tld/sub1/</code> is <em>always</em> served
520    from the sub1-vhost.<br /> A request to the URL
521    <code>http://www.sub1.domain.tld/</code> is only
522    served from the sub1-vhost if the client sent a correct
523    <code>Host:</code> header. If no <code>Host:</code> header is sent the
524    client gets the information page from the primary host.</p>
525
526    <p>Please note that there is one oddity: A request to
527    <code>http://www.sub2.domain.tld/sub1/</code> is also served from the
528    sub1-vhost if the client sent no <code>Host:</code> header.</p>
529
530    <p>The <code class="directive"><a href="/mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directives
531    are used to make sure that a client which sent a correct
532    <code>Host:</code> header can use both URL variants, <em>i.e.</em>,
533    with or without URL prefix.</p>
534
535  </div></div>
536<div class="bottomlang">
537<p><span>Available Languages: </span><a href="/en/vhosts/examples.html" title="English">&nbsp;en&nbsp;</a> |
538<a href="/fr/vhosts/examples.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
539<a href="/ja/vhosts/examples.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
540<a href="/ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
541<a href="/tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
542</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
543<script type="text/javascript"><!--//--><![CDATA[//><!--
544var comments_shortname = 'httpd';
545var comments_identifier = 'http://httpd.apache.org/docs/2.4/vhosts/examples.html';
546(function(w, d) {
547    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
548        d.write('<div id="comments_thread"><\/div>');
549        var s = d.createElement('script');
550        s.type = 'text/javascript';
551        s.async = true;
552        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
553        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
554    }
555    else { 
556        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
557    }
558})(window, document);
559//--><!]]></script></div><div id="footer">
560<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
561<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
562if (typeof(prettyPrint) !== 'undefined') {
563    prettyPrint();
564}
565//--><!]]></script>
566</body></html>