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="<-" alt="<-" src="/images/left.gif" /></a></div> 21<div id="path"> 22<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <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"> en </a> | 25<a href="/fr/vhosts/examples.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> | 26<a href="/ja/vhosts/examples.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 27<a href="/ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 28<a href="/tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </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<VirtualHost *:80> 84 DocumentRoot /www/example1 85 ServerName www.example.com 86 87 # Other directives here 88</VirtualHost> 89 90<VirtualHost *:80> 91 DocumentRoot /www/example2 92 ServerName www.example.org 93 94 # Other directives here 95</VirtualHost></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<VirtualHost 172.20.30.50> 150 DocumentRoot /www/example1 151 ServerName www.example.com 152 153 # Other directives here ... 154</VirtualHost> 155 156<VirtualHost 172.20.30.50> 157 DocumentRoot /www/example2 158 ServerName www.example.org 159 160 # Other directives here ... 161</VirtualHost></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"><VirtualHost 192.168.1.1 172.20.30.40> 188 DocumentRoot /www/server1 189 ServerName server.example.com 190 ServerAlias server 191</VirtualHost></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<VirtualHost 172.20.30.40:80> 222 ServerName www.example.com 223 DocumentRoot /www/domain-80 224</VirtualHost> 225 226<VirtualHost 172.20.30.40:8080> 227 ServerName www.example.com 228 DocumentRoot /www/domain-8080 229</VirtualHost> 230 231<VirtualHost 172.20.30.40:80> 232 ServerName www.example.org 233 DocumentRoot /www/otherdomain-80 234</VirtualHost> 235 236<VirtualHost 172.20.30.40:8080> 237 ServerName www.example.org 238 DocumentRoot /www/otherdomain-8080 239</VirtualHost></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<VirtualHost 172.20.30.40> 254 DocumentRoot /www/example1 255 ServerName www.example.com 256</VirtualHost> 257 258<VirtualHost 172.20.30.50> 259 DocumentRoot /www/example2 260 ServerName www.example.org 261</VirtualHost></pre> 262 263 264 <p>Requests for any address not specified in one of the 265 <code><VirtualHost></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<VirtualHost 172.20.30.40:80> 286 DocumentRoot /www/example1-80 287 ServerName www.example.com 288</VirtualHost> 289 290<VirtualHost 172.20.30.40:8080> 291 DocumentRoot /www/example1-8080 292 ServerName www.example.com 293</VirtualHost> 294 295<VirtualHost 172.20.30.50:80> 296 DocumentRoot /www/example2-80 297 ServerName www.example.org 298</VirtualHost> 299 300<VirtualHost 172.20.30.50:8080> 301 DocumentRoot /www/example2-8080 302 ServerName www.example.org 303</VirtualHost></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<VirtualHost 172.20.30.40> 316 DocumentRoot /www/example1 317 ServerName www.example.com 318</VirtualHost> 319 320<VirtualHost 172.20.30.40> 321 DocumentRoot /www/example2 322 ServerName www.example.org 323</VirtualHost> 324 325<VirtualHost 172.20.30.40> 326 DocumentRoot /www/example3 327 ServerName www.example.net 328</VirtualHost> 329 330# IP-based 331<VirtualHost 172.20.30.50> 332 DocumentRoot /www/example4 333 ServerName www.example.edu 334</VirtualHost> 335 336<VirtualHost 172.20.30.60> 337 DocumentRoot /www/example5 338 ServerName www.example.gov 339</VirtualHost></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"><VirtualHost *:*> 356 ProxyPreserveHost On 357 ProxyPass / http://192.168.111.2/ 358 ProxyPassReverse / http://192.168.111.2/ 359 ServerName hostname.example.com 360</VirtualHost></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"><VirtualHost _default_:*> 376 DocumentRoot /www/default 377</VirtualHost></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"><VirtualHost _default_:80> 401 DocumentRoot /www/default80 402 # ... 403</VirtualHost> 404 405<VirtualHost _default_:*> 406 DocumentRoot /www/default 407 # ... 408</VirtualHost></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"><VirtualHost _default_:80> 424DocumentRoot /www/default 425... 426</VirtualHost></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<VirtualHost 172.20.30.40 172.20.30.50> 459 DocumentRoot /www/example2 460 ServerName www.example.org 461 # ... 462</VirtualHost> 463 464<VirtualHost 172.20.30.40> 465 DocumentRoot /www/example3 466 ServerName www.example.net 467 ServerAlias *.example.net 468 # ... 469</VirtualHost></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"><VirtualHost 172.20.30.40> 491 # primary vhost 492 DocumentRoot /www/subdomain 493 RewriteEngine On 494 RewriteRule . /www/subdomain/index.html 495 # ... 496</VirtualHost> 497 498<VirtualHost 172.20.30.40> 499DocumentRoot /www/subdomain/sub1 500 ServerName www.sub1.domain.tld 501 ServerPath /sub1/ 502 RewriteEngine On 503 RewriteRule ^(/sub1/.*) /www/subdomain$1 504 # ... 505</VirtualHost> 506 507<VirtualHost 172.20.30.40> 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</VirtualHost></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"> en </a> | 538<a href="/fr/vhosts/examples.html" hreflang="fr" rel="alternate" title="Fran�ais"> fr </a> | 539<a href="/ja/vhosts/examples.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 540<a href="/ko/vhosts/examples.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 541<a href="/tr/vhosts/examples.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </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&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>