7

I've the following in my httpd.conf file:

<Directory "/www">
    Options Indexes FollowSymLinks
    AllowOverride AuthConfig FileInfo Options=Indexes,Limit
    Order allow,deny
    Allow from all
</Directory>

Next, I've a directory ChatLogs located in server root, with a .htaccess file defined as follows:

Allow from all
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /www/.htpasswd
AuthGroupFile /dev/null
Require valid-user

and when I try to access the directory, I get a 500 server error with the following in server logs (10.109.1.92 is my intranet IP):

[alert] [client 10.109.1.92] /www/ChatLogs/.htaccess: allow not allowed here

I understand that this is because of the following statement in .htaccess file:

Allow from all

but could someone explain why is the Allow directive not allowed? I want later to restrict access to certain IP address ranges; and would prefer if it can be placed in singular directories instead of setting them in httpd.conf file.

masegaloeh
  • 18,236
  • 10
  • 57
  • 106
hjpotter92
  • 670
  • 1
  • 10
  • 20

1 Answers1

6

Because you've got a comma before Limit. That makes apache parse it as though it were part of Options rather than a separate override. Think of it like this:

AllowOverride 
               AuthConfig
               FileInfo 
               Options=Indexes,Limit

What you want is instead

AllowOverride AuthConfig FileInfo Limit Options=Indexes

There's more information at the Apache core documentation.

Jenny D
  • 27,780
  • 21
  • 75
  • 114
  • But commas are allowed as per the documentation [here](http://httpd.apache.org/docs/current/mod/core.html#allowoverride) – hjpotter92 Oct 04 '13 at 12:35
  • 1
    Commas are allowed between **options**, to create a list of options. `Limit` is a separate directive and should not be part of the list of options. I don't know how to put it any clearer than that. – Jenny D Oct 04 '13 at 12:58
  • Isn't the same true for `Indexes` as well? Never mind that. I understand now. :) I have had confused [this](http://httpd.apache.org/docs/current/mod/core.html#options) with AllowOverride Directive lists. – hjpotter92 Oct 04 '13 at 13:54
  • I'm glad you got it working! It can be a bit confusing with having a list within a list :-) – Jenny D Oct 05 '13 at 19:26