Apache 位置和目录访问

Apache 位置和目录访问

我在 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>

相关内容