--- Joshua Slive <[EMAIL PROTECTED]> wrote:
> Comments VERY welcome.

Looks good.  I just have a few comments:


1)
    The first argument to this directive is always from. The subsequent 
arguments can
    take three different forms. If Allow from all is specified, then all hosts 
are
    allowed access. To allow only particular hosts or groups of hosts to access 
the
    server, the host can be specified in any of the following formats:"

For the Allow from all part, how about an additional qualifier:

    ... If Allow from all is specified, then all hosts are allowed access except
    those that are specifically denied through the Deny directive (see also
    the Order directive for more information about this interaction).  ...

Or something like that.  =-)


2) In Allow/Deny, is a leading/trailing period required for partial matches?  I 
don't
remember.


3)
    SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
    <Directory /docroot>
        Order Deny,Allow
        Deny from all
        Allow from env=let_me_in
    </Directory>
    In this case browsers with the user-agent string KnockKnock/2.0 will be
    allowed access, and all others will be denied.

Just to be picky, doesn't the SetEnvIf regex used here actually allow any 
user-agent
string BEGINNING with KnockKnock/2.0 (since there's no trailing $ on the 
regex)?  I think
that actually is the behavior you want, so don't change the SetEnvIf... just 
stick a
"beginning" in the description there somewhere.


4)
  Deny,Allow 
      the Deny directives are evaluated before the Allow directives. (The 
initial
      state is OK.) 
  Allow,Deny 
      the Allow directives are evaluated before the Deny directives. (The 
initial
      state is FORBIDDEN.)"

Changing "The initial state is FOO" in these two descriptions might make it 
more clear
what's going on... it's currently worded in kind of a programmer-friendly way.

Maybe make it say "The default behavior is to FOO clients neither specifically 
allowed
nor denied."


5) See my previous email about the short-circuiting thing.


6)
  Order Allow,Deny
  Allow from apache.org
  Deny from foo.apache.org

  Note that if the Order in the last example is changed to Deny,Allow, then all 
hosts
  will be allowed access since the default state will be OK, and the Allow from
  apache.org will be evaluated last and will override the Deny from 
foo.apache.org.

This part tripped me up... it's a perfectly valid and correct example, it just 
wasn't
100% obvious.  How about this:

  Order Allow,Deny
  Allow from apache.org
  Deny from foo.apache.org

  If the Order is changed to Deny,Allow, however, all clients will end up being
  allowed access.  That's because with Deny,Allow, the default is to allow,
  and because the Allow from apache.org will be evaluated last and will
  override the Deny from foo.apache.org (regardless of their actual order in
  the configuration file).

It's not much of a change... I don't even know if it helps any.  What do you 
think?

--Cliff

__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/

Reply via email to