]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_access_compat.html.en
s/2011/2012/g
[apache] / docs / manual / mod / mod_access_compat.html.en
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>mod_access_compat - 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" />
12 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
13 <body>
14 <div id="page-header">
15 <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>
16 <p class="apache">Apache HTTP Server Version 2.5</p>
17 <img alt="" src="../images/feather.gif" /></div>
18 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
19 <div id="path">
20 <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.5</a> &gt; <a href="./">Modules</a></div>
21 <div id="page-content">
22 <div id="preamble"><h1>Apache Module mod_access_compat</h1>
23 <div class="toplang">
24 <p><span>Available Languages: </span><a href="../en/mod/mod_access_compat.html" title="English">&nbsp;en&nbsp;</a> |
25 <a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
26 <a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
27 </div>
28 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Group authorizations based on host (name or IP
29 address)</td></tr>
30 <tr><th><a href="module-dict.html#Status">Status:</a></th><td>Extension</td></tr>
31 <tr><th><a href="module-dict.html#ModuleIdentifier">Module Identifier:</a></th><td>access_compat_module</td></tr>
32 <tr><th><a href="module-dict.html#SourceFile">Source File:</a></th><td>mod_access_compat.c</td></tr>
33 <tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache HTTP Server 2.3 as a compatibility module with
34 previous versions of Apache httpd 2.x.  The directives provided by this module
35 have been deprecated by the new authz refactoring.  Please see
36 <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></td></tr></table>
37 <h3>Summary</h3>
38
39     <p>The directives provided by <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> are
40     used in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>,
41     <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, and
42     <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> sections
43     as well as <code><a href="core.html#accessfilename">.htaccess</a>
44     </code> files to control access to particular parts of the server.
45     Access can be controlled based on the client hostname, IP address, or
46     other characteristics of the client request, as captured in <a href="../env.html">environment variables</a>. The <code class="directive"><a href="#allow">Allow</a></code> and <code class="directive"><a href="#deny">Deny</a></code> directives are used to
47     specify which clients are or are not allowed access to the server,
48     while the <code class="directive"><a href="#order">Order</a></code>
49     directive sets the default access state, and configures how the
50     <code class="directive"><a href="#allow">Allow</a></code> and <code class="directive"><a href="#deny">Deny</a></code> directives interact with each
51     other.</p>
52
53     <p>Both host-based access restrictions and password-based
54     authentication may be implemented simultaneously. In that case,
55     the <code class="directive"><a href="#satisfy">Satisfy</a></code> directive is used
56     to determine how the two sets of restrictions interact.</p>
57
58     <div class="warning"><h3>Note</h3>
59       <p>The directives provided by <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> have
60       been deprecated by the new authz refactoring. Please see
61       <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
62     </div>
63
64     <p>In general, access restriction directives apply to all
65     access methods (<code>GET</code>, <code>PUT</code>,
66     <code>POST</code>, etc). This is the desired behavior in most
67     cases. However, it is possible to restrict some methods, while
68     leaving other methods unrestricted, by enclosing the directives
69     in a <code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code> section.</p>
70
71     <div class="note"> <h3>Merging of configuration sections</h3>
72       <p>When any directive provided by this module is used in a new 
73       configuration section, no directives provided by this module are
74       inherited from previous configuration sections.</p>
75     </div>
76
77 </div>
78 <div id="quickview"><h3 class="directives">Directives</h3>
79 <ul id="toc">
80 <li><img alt="" src="../images/down.gif" /> <a href="#allow">Allow</a></li>
81 <li><img alt="" src="../images/down.gif" /> <a href="#deny">Deny</a></li>
82 <li><img alt="" src="../images/down.gif" /> <a href="#order">Order</a></li>
83 <li><img alt="" src="../images/down.gif" /> <a href="#satisfy">Satisfy</a></li>
84 </ul>
85 <h3>See also</h3>
86 <ul class="seealso">
87 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
88 <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
89 <li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
90 </ul></div>
91
92 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
93 <div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">Directive</a></h2>
94 <table class="directive">
95 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls which hosts can access an area of the
96 server</td></tr>
97 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code> Allow from all|<var>host</var>|env=[!]<var>env-variable</var>
98 [<var>host</var>|env=[!]<var>env-variable</var>] ...</code></td></tr>
99 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
100 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Limit</td></tr>
101 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
102 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_access_compat</td></tr>
103 </table>
104     <p>The <code class="directive">Allow</code> directive affects which hosts can
105     access an area of the server. Access can be controlled by
106     hostname, IP address, IP address range, or by other
107     characteristics of the client request captured in environment
108     variables.</p>
109
110     <p>The first argument to this directive is always
111     <code>from</code>. The subsequent arguments can take three
112     different forms. If <code>Allow from all</code> is specified, then
113     all hosts are allowed access, subject to the configuration of the
114     <code class="directive"><a href="#deny">Deny</a></code> and <code class="directive"><a href="#order">Order</a></code> directives as discussed
115     below. To allow only particular hosts or groups of hosts to access
116     the server, the <em>host</em> can be specified in any of the
117     following formats:</p>
118
119     <dl>
120       <dt>A (partial) domain-name</dt>
121
122       <dd>
123       <div class="example"><h3>Example:</h3><p><code>
124         Allow from example.org<br />
125         Allow from .net example.edu
126       </code></p></div>
127       <p>Hosts whose names match, or end in, this string are allowed
128       access. Only complete components are matched, so the above
129       example will match <code>foo.example.org</code> but it will not
130       match <code>fooexample.org</code>. This configuration will cause
131       Apache httpd to perform a double DNS lookup on the client IP
132       address, regardless of the setting of the <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> directive.  It will do
133       a reverse DNS lookup on the IP address to find the associated
134       hostname, and then do a forward lookup on the hostname to assure
135       that it matches the original IP address.  Only if the forward
136       and reverse DNS are consistent and the hostname matches will
137       access be allowed.</p></dd>
138
139       <dt>A full IP address</dt>
140
141       <dd>
142       <div class="example"><h3>Example:</h3><p><code>
143         Allow from 10.1.2.3<br />
144         Allow from 192.168.1.104 192.168.1.205
145       </code></p></div>
146       <p>An IP address of a host allowed access</p></dd>
147
148       <dt>A partial IP address</dt>
149
150       <dd>
151       <div class="example"><h3>Example:</h3><p><code>
152         Allow from 10.1<br />
153         Allow from 10 172.20 192.168.2
154       </code></p></div>
155       <p>The first 1 to 3 bytes of an IP address, for subnet
156       restriction.</p></dd>
157
158       <dt>A network/netmask pair</dt>
159
160       <dd>
161       <div class="example"><h3>Example:</h3><p><code>
162         Allow from 10.1.0.0/255.255.0.0
163       </code></p></div>
164       <p>A network a.b.c.d, and a netmask w.x.y.z. For more
165       fine-grained subnet restriction.</p></dd>
166
167       <dt>A network/nnn CIDR specification</dt>
168
169       <dd>
170       <div class="example"><h3>Example:</h3><p><code>
171         Allow from 10.1.0.0/16
172       </code></p></div>
173       <p>Similar to the previous case, except the netmask consists of
174       nnn high-order 1 bits.</p></dd>
175     </dl>
176
177     <p>Note that the last three examples above match exactly the
178     same set of hosts.</p>
179
180     <p>IPv6 addresses and IPv6 subnets can be specified as shown
181     below:</p>
182
183     <div class="example"><p><code>
184        Allow from 2001:db8::a00:20ff:fea7:ccea<br />
185        Allow from 2001:db8::a00:20ff:fea7:ccea/10
186     </code></p></div>
187
188     <p>The third format of the arguments to the
189     <code class="directive">Allow</code> directive allows access to the server
190     to be controlled based on the existence of an <a href="../env.html">environment variable</a>. When <code>Allow from
191     env=<var>env-variable</var></code> is specified, then the request is
192     allowed access if the environment variable <var>env-variable</var>
193     exists. When <code>Allow from env=!<var>env-variable</var></code> is
194     specified, then the request is allowed access if the environment
195     variable <var>env-variable</var> doesn't exist.
196     The server provides the ability to set environment
197     variables in a flexible way based on characteristics of the client
198     request using the directives provided by
199     <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Therefore, this directive can be
200     used to allow access based on such factors as the clients
201     <code>User-Agent</code> (browser type), <code>Referer</code>, or
202     other HTTP request header fields.</p>
203
204     <div class="example"><h3>Example:</h3><p><code>
205       SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in<br />
206       &lt;Directory /docroot&gt;<br />
207       <span class="indent">
208         Order Deny,Allow<br />
209         Deny from all<br />
210         Allow from env=let_me_in<br />
211       </span>
212       &lt;/Directory&gt;
213     </code></p></div>
214
215     <p>In this case, browsers with a user-agent string beginning
216     with <code>KnockKnock/2.0</code> will be allowed access, and all
217     others will be denied.</p>
218
219     <div class="note"> <h3>Merging of configuration sections</h3>
220       <p>When any directive provided by this module is used in a new 
221       configuration section, no directives provided by this module are
222       inherited from previous configuration sections.</p>
223     </div>
224
225
226 </div>
227 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
228 <div class="directive-section"><h2><a name="Deny" id="Deny">Deny</a> <a name="deny" id="deny">Directive</a></h2>
229 <table class="directive">
230 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls which hosts are denied access to the
231 server</td></tr>
232 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code> Deny from all|<var>host</var>|env=[!]<var>env-variable</var>
233 [<var>host</var>|env=[!]<var>env-variable</var>] ...</code></td></tr>
234 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
235 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Limit</td></tr>
236 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
237 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_access_compat</td></tr>
238 </table>
239     <p>This directive allows access to the server to be restricted
240     based on hostname, IP address, or environment variables. The
241     arguments for the <code class="directive">Deny</code> directive are
242     identical to the arguments for the <code class="directive"><a href="#allow">Allow</a></code> directive.</p>
243
244 </div>
245 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
246 <div class="directive-section"><h2><a name="Order" id="Order">Order</a> <a name="order" id="order">Directive</a></h2>
247 <table class="directive">
248 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls the default access state and the order in which
249 <code class="directive">Allow</code> and <code class="directive">Deny</code> are
250 evaluated.</td></tr>
251 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code> Order <var>ordering</var></code></td></tr>
252 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Order Deny,Allow</code></td></tr>
253 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
254 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Limit</td></tr>
255 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
256 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_access_compat</td></tr>
257 </table>
258
259     <p>The <code class="directive">Order</code> directive, along with the
260     <code class="directive"><a href="#allow">Allow</a></code> and
261     <code class="directive"><a href="#deny">Deny</a></code> directives,
262     controls a three-pass access control system. The first pass
263     processes either all <code class="directive"><a href="#allow">Allow</a></code> or all <code class="directive"><a href="#deny">Deny</a></code> directives, as specified
264     by the <code class="directive"><a href="#order">Order</a></code>
265     directive. The second pass parses the rest of the directives
266     (<code class="directive"><a href="#deny">Deny</a></code> or
267     <code class="directive"><a href="#allow">Allow</a></code>). The third
268     pass applies to all requests which do not match either of the first
269     two.</p>
270
271     <p>Note that all <code class="directive"><a href="#allow">Allow</a></code> and <code class="directive"><a href="#deny">Deny</a></code> directives are
272     processed, unlike a typical firewall, where only the first match is
273     used. The last match is effective (also unlike a typical firewall).
274     Additionally, the order in which lines appear in the configuration
275     files is not significant -- all <code class="directive"><a href="#allow">Allow</a></code> lines are processed as
276     one group, all <code class="directive"><a href="#deny">Deny</a></code> lines are considered as
277     another, and the default state is considered by itself.</p>
278
279     <p><em>Ordering</em> is one of:</p>
280
281     <dl>
282       <dt><code>Allow,Deny</code></dt>
283
284       <dd>First, all <code class="directive"><a href="#allow">Allow</a></code> directives are
285       evaluated; at least one must match, or the request is rejected.
286       Next, all <code class="directive"><a href="#deny">Deny</a></code>
287       directives are evaluated. If any matches, the request is rejected.
288       Last, any requests which do not match an <code class="directive"><a href="#allow">Allow</a></code> or a <code class="directive"><a href="#deny">Deny</a></code> directive are denied
289       by default.</dd>
290
291       <dt><code>Deny,Allow</code></dt>
292
293       <dd>First, all <code class="directive"><a href="#deny">Deny</a></code> directives are
294       evaluated; if any match, the request is denied
295       <strong>unless</strong> it also matches an <code class="directive"><a href="#allow">Allow</a></code> directive. Any
296       requests which do not match any <code class="directive"><a href="#allow">Allow</a></code> or <code class="directive"><a href="#deny">Deny</a></code> directives are
297       permitted.</dd>
298
299       <dt><code>Mutual-failure</code></dt>
300
301       <dd>This order has the same effect as <code>Order
302       Allow,Deny</code> and is deprecated in its favor.</dd>
303     </dl>
304
305     <p>Keywords may only be separated by a comma; <em>no whitespace</em>
306     is allowed between them.</p>
307
308     <table class="bordered">
309       <tr>
310         <th>Match</th>
311         <th>Allow,Deny result</th>
312         <th>Deny,Allow result</th>
313       </tr><tr>
314         <th>Match Allow only</th>
315         <td>Request allowed</td>
316         <td>Request allowed</td>
317       </tr><tr>
318         <th>Match Deny only</th>
319         <td>Request denied</td>
320         <td>Request denied</td>
321       </tr><tr>
322         <th>No match</th>
323         <td>Default to second directive: Denied</td>
324         <td>Default to second directive: Allowed</td>
325       </tr><tr>
326         <th>Match both Allow &amp; Deny</th>
327         <td>Final match controls: Denied</td>
328         <td>Final match controls: Allowed</td>
329       </tr>
330     </table>
331
332     <p>In the following example, all hosts in the example.org domain
333     are allowed access; all other hosts are denied access.</p>
334
335     <div class="example"><p><code>
336       Order Deny,Allow<br />
337       Deny from all<br />
338       Allow from example.org
339     </code></p></div>
340
341     <p>In the next example, all hosts in the example.org domain are
342     allowed access, except for the hosts which are in the
343     foo.example.org subdomain, who are denied access. All hosts not
344     in the example.org domain are denied access because the default
345     state is to <code class="directive"><a href="#deny">Deny</a></code>
346     access to the server.</p>
347
348     <div class="example"><p><code>
349       Order Allow,Deny<br />
350       Allow from example.org<br />
351       Deny from foo.example.org
352     </code></p></div>
353
354     <p>On the other hand, if the <code class="directive">Order</code> in the
355     last example is changed to <code>Deny,Allow</code>, all hosts will
356     be allowed access. This happens because, regardless of the actual
357     ordering of the directives in the configuration file, the
358     <code>Allow from example.org</code> will be evaluated last and will
359     override the <code>Deny from foo.example.org</code>. All hosts not in
360     the <code>example.org</code> domain will also be allowed access
361     because the default state is <code class="directive"><a href="#allow">Allow</a></code>.</p>
362
363     <p>The presence of an <code class="directive">Order</code> directive can
364     affect access to a part of the server even in the absence of
365     accompanying <code class="directive"><a href="#allow">Allow</a></code>
366     and <code class="directive"><a href="#deny">Deny</a></code>
367     directives because of its effect on the default access state. For
368     example,</p>
369
370     <div class="example"><p><code>
371       &lt;Directory /www&gt;<br />
372       <span class="indent">
373         Order Allow,Deny<br />
374       </span>
375       &lt;/Directory&gt;
376     </code></p></div>
377
378     <p>will Deny all access to the <code>/www</code> directory
379     because the default access state is set to
380     <code class="directive"><a href="#deny">Deny</a></code>.</p>
381
382     <p>The <code class="directive">Order</code> directive controls the order of access
383     directive processing only within each phase of the server's
384     configuration processing. This implies, for example, that an
385     <code class="directive"><a href="#allow">Allow</a></code> or <code class="directive"><a href="#deny">Deny</a></code> directive occurring in a
386     <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section will
387     always be evaluated after an <code class="directive"><a href="#allow">Allow</a></code> or <code class="directive"><a href="#deny">Deny</a></code> directive occurring in a
388     <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> section or
389     <code>.htaccess</code> file, regardless of the setting of the
390     <code class="directive">Order</code> directive. For details on the merging
391     of configuration sections, see the documentation on <a href="../sections.html">How Directory, Location and Files sections
392     work</a>.</p>
393
394     <div class="note"> <h3>Merging of configuration sections</h3>
395       <p>When any directive provided by this module is used in a new 
396       configuration section, no directives provided by this module are
397       inherited from previous configuration sections.</p>
398     </div>
399
400
401 </div>
402 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
403 <div class="directive-section"><h2><a name="Satisfy" id="Satisfy">Satisfy</a> <a name="satisfy" id="satisfy">Directive</a></h2>
404 <table class="directive">
405 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interaction between host-level access control and
406 user authentication</td></tr>
407 <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Satisfy Any|All</code></td></tr>
408 <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Satisfy All</code></td></tr>
409 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
410 <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
411 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
412 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_access_compat</td></tr>
413 <tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Influenced by <code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code> and <code class="directive"><a href="../mod/core.html#limitexcept">&lt;LimitExcept&gt;</a></code> in version 2.0.51 and
414 later</td></tr>
415 </table>
416     <p>Access policy if both <code class="directive"><a href="#allow">Allow</a></code> and <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> used. The parameter can be
417     either <code>All</code> or <code>Any</code>. This directive is only
418     useful if access to a particular area is being restricted by both
419     username/password <em>and</em> client host address. In this case
420     the default behavior (<code>All</code>) is to require that the client
421     passes the address access restriction <em>and</em> enters a valid
422     username and password. With the <code>Any</code> option the client will be
423     granted access if they either pass the host restriction or enter a
424     valid username and password. This can be used to password restrict
425     an area, but to let clients from particular addresses in without
426     prompting for a password.</p>
427
428     <p>For example, if you wanted to let people on your network have
429     unrestricted access to a portion of your website, but require that
430     people outside of your network provide a password, you could use a
431     configuration similar to the following:</p>
432
433     <div class="example"><p><code>
434       Require valid-user<br />
435       Allow from 192.168.1<br />
436       Satisfy Any
437     </code></p></div>
438
439     <p>
440     Another frequent use of the <code class="directive">Satisfy</code> directive
441     is to relax access restrictions for a subdirectory:
442     </p>
443
444     <div class="example"><p><code>
445       &lt;Directory /var/www/private&gt;<br />
446         Require valid-user<br />
447       &lt;/Directory&gt;<br />
448       <br />
449       &lt;Directory /var/www/private/public&gt;<br />
450         Allow from all<br />
451         Satisfy Any<br />
452       &lt;/Directory&gt;
453     </code></p></div>
454
455     <p>In the above example, authentication will be required for the
456     <code>/var/www/private</code> directory, but will not be required
457     for the <code>/var/www/private/public</code> directory.</p>
458
459     <p>Since version 2.0.51 <code class="directive">Satisfy</code> directives can
460     be restricted to particular methods by <code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code> and <code class="directive"><a href="../mod/core.html#limitexcept">&lt;LimitExcept&gt;</a></code> sections.</p>
461
462     <div class="note"> <h3>Merging of configuration sections</h3>
463       <p>When any directive provided by this module is used in a new 
464       configuration section, no directives provided by this module are
465       inherited from previous configuration sections.</p>
466     </div>
467
468
469 <h3>See also</h3>
470 <ul>
471 <li><code class="directive"><a href="#allow">Allow</a></code></li>
472 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
473 </ul>
474 </div>
475 </div>
476 <div class="bottomlang">
477 <p><span>Available Languages: </span><a href="../en/mod/mod_access_compat.html" title="English">&nbsp;en&nbsp;</a> |
478 <a href="../fr/mod/mod_access_compat.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
479 <a href="../ja/mod/mod_access_compat.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
480 </div><div id="footer">
481 <p class="apache">Copyright 2012 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>
482 <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>
483 </body></html>