为什么 apache2 中不允许这里允许

为什么 apache2 中不允许这里允许

我的文件中有以下内容httpd.conf

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

ChatLogs接下来,我在服务器根目录中有一个目录,其中的.htaccess文件定义如下:

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

当我尝试访问目录时,出现 500 服务器错误,服务器日志中显示以下内容(10.109.1.92这是我的内联网 IP):

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

我理解这是因为.htaccess文件中有以下声明:

Allow from all

但有人可以解释一下吗为什么Allow不允许该指令?我想稍后限制对某些 IP 地址范围的访问;并且更希望将其放在单个目录中,而不是将它们设置在httpd.conf文件中。

答案1

因为 Limit 前面有一个逗号。这使得 apache 将其解析为 Options 的一部分,而不是单独的覆盖。可以这样想:

AllowOverride 
               AuthConfig
               FileInfo 
               Options=Indexes,Limit

你想要的是

AllowOverride AuthConfig FileInfo Limit Options=Indexes

更多信息请访问Apache 核心文档

相关内容