ip-based.html.en revision 76d83a94f9ceb90468ea20abc98622e489afef9f
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<?xml version="1.0" encoding="ISO-8859-1"?>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess This file is generated from xml source: DO NOT EDIT
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5a58787efeb02a1c3f06569d019ad81fd2efa06end -->
5a58787efeb02a1c3f06569d019ad81fd2efa06end<title>Apache IP-based Virtual Host Support - Apache HTTP Server</title>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
5a58787efeb02a1c3f06569d019ad81fd2efa06end<link href="/images/favicon.ico" rel="shortcut icon" /></head>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<body id="manual-page"><div id="page-header">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p>
52fff662005b1866a3ff09bb6c902800c5cc6dedjerenkrantz<p class="apache">Apache HTTP Server Version 2.3</p>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<img alt="" src="/images/feather.gif" /></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div id="path">
4b5981e276e93df97c34e4da05ca5cf8bbd937dand<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.3</a> &gt; <a href="./">Virtual Hosts</a></div><div id="page-content"><div id="preamble"><h1>Apache IP-based Virtual Host Support</h1>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd<div class="toplang">
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd<p><span>Available Languages: </span><a href="/en/vhosts/ip-based.html" title="English">&nbsp;en&nbsp;</a> |
d05d0eb4ae6d2a5e513fc3bf2555ce33da416634nd<a href="/fr/vhosts/ip-based.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
7f5b59ccc63c0c0e3e678a168f09ee6a2f51f9d0nd<a href="/ja/vhosts/ip-based.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi<a href="/ko/vhosts/ip-based.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi<a href="/tr/vhosts/ip-based.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd</div>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd</div>
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#explanation">What is IP-based virtual hosting</a></li>
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf<li><img alt="" src="/images/down.gif" /> <a href="#requirements">System requirements</a></li>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<li><img alt="" src="/images/down.gif" /> <a href="#howto">How to set up Apache</a></li>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<li><img alt="" src="/images/down.gif" /> <a href="#multiple">Setting up multiple daemons</a></li>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<li><img alt="" src="/images/down.gif" /> <a href="#single">Setting up a single daemon
5ae30adbe59946de742ab0cd6be3b7457471a698takashi with virtual hosts</a></li>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</ul><h3>See also</h3><ul class="seealso"><li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess<a href="name-based.html">Name-based Virtual Hosts Support</a>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</li></ul></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="section">
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf<h2><a name="explanation" id="explanation">What is IP-based virtual hosting</a></h2>
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf<p>IP-based virtual hosting is a method to apply different directives
6e14faf37935e36804b8bad802bc9dd58f3cf65dsfbased on the IP address and port a request is received on. Most commonly,
6e14faf37935e36804b8bad802bc9dd58f3cf65dsfthis is used to serve different websites on different ports or interfaces.</p>
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf<p>In many cases, <a href="name-based.html">name-based
6e14faf37935e36804b8bad802bc9dd58f3cf65dsfvirtual hosts</a> are more convenient, because they allow
6e14faf37935e36804b8bad802bc9dd58f3cf65dsfmany virtual hosts to share a single address/port.
6e14faf37935e36804b8bad802bc9dd58f3cf65dsfSee <a href="name-based.html#namevip">Name-based vs. IP-based
6e14faf37935e36804b8bad802bc9dd58f3cf65dsfVirtual Hosts</a> to help you decide. </p>
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf<div class="section">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<h2><a name="requirements" id="requirements">System requirements</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>As the term <cite>IP-based</cite> indicates, the server
60a4b2c422dcbb08a554fb193105c08da592718bpoirier <strong>must have a different IP address/port combination for each IP-based
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess virtual host</strong>. This can be achieved by the machine
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess having several physical network connections, or by use of
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess virtual interfaces which are supported by most modern operating
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess systems (see system documentation for details, these are
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess frequently called "ip aliases", and the "ifconfig" command is
60a4b2c422dcbb08a554fb193105c08da592718bpoirier most commonly used to set them up), and/or using multiple
60a4b2c422dcbb08a554fb193105c08da592718bpoirier port numbers.</p>
60a4b2c422dcbb08a554fb193105c08da592718bpoirier
76d83a94f9ceb90468ea20abc98622e489afef9fcovener <p> In the terminology of Apache HTTP Server, using a single IP address
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf but multiple TCP ports, is also IP-based virtual hosting.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
5a58787efeb02a1c3f06569d019ad81fd2efa06end</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="section">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<h2><a name="howto" id="howto">How to set up Apache</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>There are two ways of configuring apache to support multiple
9bcfc3697a91b5215893a7d0206865b13fc72148nd hosts. Either by running a separate <code class="program"><a href="/programs/httpd.html">httpd</a></code> daemon for
9bcfc3697a91b5215893a7d0206865b13fc72148nd each hostname, or by running a single daemon which supports all the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess virtual hosts.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Use multiple daemons when:</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>There are security partitioning issues, such as company1
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess does not want anyone at company2 to be able to read their
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess data except via the web. In this case you would need two
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess daemons, each running with different <code class="directive"><a href="/mod/mpm_common.html#user">User</a></code>, <code class="directive"><a href="/mod/mpm_common.html#group">Group</a></code>, <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code>, and <code class="directive"><a href="/mod/core.html#serverroot">ServerRoot</a></code> settings.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
cd9f05dfac570b44f26f531e01869e679c45401berikabele <li>You can afford the memory and file descriptor
cd9f05dfac570b44f26f531e01869e679c45401berikabele requirements of listening to every IP alias on the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess machine. It's only possible to <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code> to the "wildcard"
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess address, or to specific addresses. So if you have a need to
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess listen to a specific address for whatever reason, then you
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess will need to listen to all specific addresses. (Although one
9bcfc3697a91b5215893a7d0206865b13fc72148nd <code class="program"><a href="/programs/httpd.html">httpd</a></code> could listen to N-1 of the addresses, and another could
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess listen to the remaining address.)</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Use a single daemon when:</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>Sharing of the httpd configuration between virtual hosts
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess is acceptable.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <li>The machine services a large number of requests, and so
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess the performance loss in running separate daemons may be
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess significant.</li>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess </ul>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
5a58787efeb02a1c3f06569d019ad81fd2efa06end</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="section">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<h2><a name="multiple" id="multiple">Setting up multiple daemons</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
9bcfc3697a91b5215893a7d0206865b13fc72148nd <p>Create a separate <code class="program"><a href="/programs/httpd.html">httpd</a></code> installation for each
9bcfc3697a91b5215893a7d0206865b13fc72148nd virtual host. For each installation, use the <code class="directive"><a href="/mod/mpm_common.html#listen">Listen</a></code> directive in the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess configuration file to select which IP address (or virtual host)
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess that daemon services. e.g.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
49038652341bbe660a629c860507622583f8fdf0kess <div class="example"><p><code>
76d83a94f9ceb90468ea20abc98622e489afef9fcovener Listen 192.0.2.100:80
49038652341bbe660a629c860507622583f8fdf0kess </code></p></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>It is recommended that you use an IP address instead of a
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess hostname (see <a href="/dns-caveats.html">DNS caveats</a>).</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
5a58787efeb02a1c3f06569d019ad81fd2efa06end</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<div class="section">
5a58787efeb02a1c3f06569d019ad81fd2efa06end<h2><a name="single" id="single">Setting up a single daemon
5ae30adbe59946de742ab0cd6be3b7457471a698takashi with virtual hosts</a></h2>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
9bcfc3697a91b5215893a7d0206865b13fc72148nd <p>For this case, a single <code class="program"><a href="/programs/httpd.html">httpd</a></code> will service
9bcfc3697a91b5215893a7d0206865b13fc72148nd requests for the main server and all the virtual hosts. The <code class="directive"><a href="/mod/core.html#virtualhost">VirtualHost</a></code> directive
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess in the configuration file is used to set the values of <code class="directive"><a href="/mod/core.html#serveradmin">ServerAdmin</a></code>, <code class="directive"><a href="/mod/core.html#servername">ServerName</a></code>, <code class="directive"><a href="/mod/core.html#documentroot">DocumentRoot</a></code>, <code class="directive"><a href="/mod/core.html#errorlog">ErrorLog</a></code> and <code class="directive"><a href="/mod/mod_log_config.html#transferlog">TransferLog</a></code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess or <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess configuration directives to different values for each virtual
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess host. e.g.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
49038652341bbe660a629c860507622583f8fdf0kess <div class="example"><p><code>
fc0e302cc26d443c3441238f00e7b5a201b3bbb9rbowen &lt;VirtualHost 172.20.30.40:80&gt;<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick ServerAdmin webmaster@www1.example.com<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick DocumentRoot /www/vhosts/www1<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick ServerName www1.example.com<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick ErrorLog /www/logs/www1/error_log<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick CustomLog /www/logs/www1/access_log combined<br />
49038652341bbe660a629c860507622583f8fdf0kess &lt;/VirtualHost&gt;<br />
5ae30adbe59946de742ab0cd6be3b7457471a698takashi <br />
fc0e302cc26d443c3441238f00e7b5a201b3bbb9rbowen &lt;VirtualHost 172.20.30.50:80&gt;<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick ServerAdmin webmaster@www2.example.org<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick DocumentRoot /www/vhosts/www2<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick ServerName www2.example.org<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick ErrorLog /www/logs/www2/error_log<br />
9a367ec3d570bcbaf8923dad66cb3b1532963964trawick CustomLog /www/logs/www2/access_log combined<br />
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess &lt;/VirtualHost&gt;
5ae30adbe59946de742ab0cd6be3b7457471a698takashi </code></p></div>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>It is recommended that you use an IP address instead of a
fc0e302cc26d443c3441238f00e7b5a201b3bbb9rbowen hostname in the &lt;VirtualHost&gt; directive
fc0e302cc26d443c3441238f00e7b5a201b3bbb9rbowen (see <a href="/dns-caveats.html">DNS caveats</a>).</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf <p> Specific IP addresses or ports have precedence over their wildcard
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf equivalents, and any virtual host that matches has precedence over
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf the servers base configuration.</p>
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p>Almost <strong>any</strong> configuration directive can be
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess put in the VirtualHost directive, with the exception of
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess directives that control process creation and a few other
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess directives. To find out if a directive can be used in the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess VirtualHost directive, check the <a href="/mod/directive-dict.html#Context">Context</a> using the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <a href="/mod/directives.html">directive index</a>.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
1f6b6946407b900ccef68a0e9cd8baa0eba429e8rbowen <p><code class="directive"><a href="/mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code>
1f6b6946407b900ccef68a0e9cd8baa0eba429e8rbowen may be used inside a
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess VirtualHost directive if the <a href="/suexec.html">suEXEC
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess wrapper</a> is used.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess <p><em>SECURITY:</em> When specifying where to write log files,
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess be aware of some security risks which are present if anyone
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess other than the user that starts Apache has write access to the
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess directory where they are written. See the <a href="/misc/security_tips.html">security tips</a> document
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess for details.</p>
fefb8b844b6286bfc41bb2e0c4cc003b8e7d4ff2kess
5a58787efeb02a1c3f06569d019ad81fd2efa06end</div></div>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd<div class="bottomlang">
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd<p><span>Available Languages: </span><a href="/en/vhosts/ip-based.html" title="English">&nbsp;en&nbsp;</a> |
d05d0eb4ae6d2a5e513fc3bf2555ce33da416634nd<a href="/fr/vhosts/ip-based.html" hreflang="fr" rel="alternate" title="Fran�ais">&nbsp;fr&nbsp;</a> |
7f5b59ccc63c0c0e3e678a168f09ee6a2f51f9d0nd<a href="/ja/vhosts/ip-based.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi<a href="/ko/vhosts/ip-based.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi<a href="/tr/vhosts/ip-based.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd</div><div id="footer">
9c1260efa52c82c2a58e5b5f20cd6902563d95f5rbowen<p class="apache">Copyright 2011 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>
5a58787efeb02a1c3f06569d019ad81fd2efa06end<p class="menu"><a href="/mod/">Modules</a> | <a href="/mod/directives.html">Directives</a> | <a href="/faq/">FAQ</a> | <a href="/glossary.html">Glossary</a> | <a href="/sitemap.html">Sitemap</a></p></div>
5a58787efeb02a1c3f06569d019ad81fd2efa06end</body></html>