From: Chris Pepper This module provides access control based on client
hostname, IP address, or other characteristics of the client
@@ -91,7 +91,7 @@
The Module mod_access
+ Module mod_access
Allow
directive affects which hosts can
access an area of the server. Access can be controlled by
- hostname, IP Address, IP Address range, or by other
+ hostname, IP address, IP address range, or other
characteristics of the client request captured in environment
variables.
The Order
directive controls the default access
- state and the order in which Allow and Deny directives are evaluated.
- Ordering is one of
The Order
directive, along with the
+ Allow
and Deny
directives, controls a
+ three-pass access control system. The first pass processes either
+ all Allow
or all Deny
directives, as
+ specified by the Order
directive. The second pass
+ parses the rest of the directives (Deny
or
+ Allow
). The third pass applies to all requests which do
+ not match either of the first two.
Note that all Allow
and Deny
directives
+ are processed, unlike a typical firewall, where only the first match
+ is used. The last match is effective (also unlike a typical
+ firewall). Additionally, the order in which lines appear in the
+ configuration files is not significant -- all Allow
+ lines are processed as one group, all Deny
lines are
+ considered as another, and the default state is considered by
+ itself.
Ordering is one of:
Deny
directives are evaluated before the
- Allow
directives. Access is allowed by default.
- Any client which does not match a Deny
directive
- or does match an Allow
directive will be allowed
- access to the server.Allow
directives are evaluated before
- the Deny
directives. Access is denied by
- default. Any client which does not match an
- Allow
directive or does match a
- Deny
directive will be denied access to the
- server.Allow
- list and do not appear on the Deny
list are
- granted access. This ordering has the same effect as
- Order Allow,Deny
and is deprecated in favor of
- that configuration.Deny,Allow
Allow
directives are evaluated; at
+ least one must match, or the request is rejected. Next, all
+ Deny
directives are evaluated. If any matches, the
+ request is rejected. Last, any requests which do not match an
+ Allow
or a Deny
directive are denied by
+ default.Allow,Deny
Deny
directives are evaluated; if any
+ match, the request is denied unless it also
+ matches an Allow
directive. Any requests which do not
+ match any Allow
or Deny
directives are
+ permitted.Mutual-failure
Order
+ Allow,Deny
and is deprecated in its favor.Keywords may only be separated by a comma; no whitespace is
- allowed between them. Note that in all cases every
- Allow
and Deny
statement is
- evaluated.
Allow,Deny match | +Allow,Deny result | +Deny,Allow result | +
---|---|---|
Match Allow only | +Request allowed | +Request allowed | +
Match Deny only | +Request denied | +Request denied | +
No match | +Default to second directive (Denied) | +Default to second directive (Allowed) | +
Match both Allow & Deny | +Final match controls: request Denied | +Final match controls: request Allowed | +
In the following example, all hosts in the apache.org domain are allowed access; all other hosts are denied access.
@@ -300,8 +334,8 @@ SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in theAllow from apache.org
will be evaluated last
and will override the Deny from foo.apache.org
.
All hosts not in the apache.org
domain will also
- be allowed access because the default state will change to
- allow.
+ be allowed access because the default state will be
+ Allow.
The presence of an Order
directive can affect
access to a part of the server even in the absence of
@@ -316,8 +350,8 @@ SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
will deny all access to the /www
directory
- because the default access state will be set to
- deny.
The Order
directive controls the order of
access directive processing only within each phase of the