我在 CentOS 6.4 上运行 Apache 2.2。/
目录和文件夹中有一些文件,假设它是 /public。
我需要允许 ip1、ip2、ip3 访问 / 目录,并允许 ip1、ip2、ip3、ip4、ip5 访问 /public 文件夹。而 ip5 和 ip4 不允许访问 /。
我尝试使用此配置来实现:
<Location / >
Require ip ip1 ip2 ip3
</Location>
Alias /public /some/path
<Directory /some/path>
Options +Indexes
Require ip ip1 ip2 ip3 ip4 ip5
</Directory>
但是 ip4 和 ip5 无法访问 /public 文件夹。
我该如何授予此 IP 地址访问权限?
UPD1
如果我使用
<Location /some/path>
Require ip ip1 ...
</Location>
而不是使用别名和目录,那么我可以访问,但浏览器中没有文件列表。似乎我应该使用它,但我无法访问此目录。
答案1
您将 /public 定义为别名 URL不是一个目录。因此,配置不起作用,因为 Apache 没有找到 /public 作为目录。
尝试改变
<Directory /public>
Options +Indexes
Require ip ip1, ip2, ip3, ip4, ip5
</Directory>
到
<Location /public>
Require ip ip1, ip2, ip3, ip4, ip5
</Location>
注意:Option 指令在 Location 指令中不起作用
作为替代配置,您可以在 Directory 指令中指定 /some/path 而不是 /public
<Directory /some/path>
Options +Indexes
Require ip ip1, ip2, ip3, ip4, ip5
</Directory>
更新
Location
您应该在指令中放置 IP 限制,因为Location
之后将合并Directory
(请参阅文档)。更新后的配置为
Alias /public /some/path
<Location /public>
Require ip ip1 ip2 ip3 ip4 ip5
</Location>
<Directory /some/path>
Options +Indexes
</Directory>