2

需要通过基于 IP 的 htaccess 在 apache 2.4 中启用索引。

例如,IP 192.168.xx

我尝试将指令放在 apache2.conf 文件中,例如:

    <Directory /var/vhosts/lubrigard.com>
            Options -Indexes +FollowSymLinks +MultiViews
            AllowOverride All
            Require all granted
    </Directory>

然后

    <Directory /var/vhosts/lubrigard.com>
            Options +Indexes +FollowSymLinks +MultiViews
            AllowOverride All
            Require ip 192.168
    </Directory>

但是,对于任何其他 IP,它都拒绝对该文件夹进行任何访问。

因此,我在站点范围内禁用了索引,并希望放置一个 .htaccess 文件来启用内部 IP 地址的索引。除非有人可以告诉我如何在 apache2.conf 文件中执行此操作。

4

2 回答 2

2

这有效,它显示“禁止,您无权访问此服务器上的/文件夹/”。而不是“目录列表被拒绝”。我仍然可以访问该文件夹中的文件。

 <If "%{REMOTE_ADDR} == '192.169.0.95'">
 Options +Indexes +FollowSymLinks +MultiViews
 Require all granted
 </If>
 <Else>
 Options -Indexes +FollowSymLinks +MultiViews
 Require all granted
 </Else>

我也试过:

 <If "%{REMOTE_ADDR} == '192.169.0.95'">
 Options +Indexes
 </If>
 <Else>
 Options -Indexes
 </Else>

两者都奏效了。我唯一的问题是我不想指定完整的 IP。我宁愿它使用 IP 的前 3 个字节:192.168.0.xxx

出于某种原因,如果未启用索引,则用户无权访问此文件夹中的内容。我只是想禁用目录列表,而不是阻止访问该文件夹中的文件。

于 2015-03-05T16:14:04.747 回答
0

谢谢!这就是我一直在寻找的,并且有效。

至于你的问题...

两者都奏效了。我唯一的问题是我不想指定完整的 IP。我宁愿它使用 IP 的前 3 个字节:192.168.0.xxx

尝试这个:<If "-R '192.168.0.0/24'">

参考:http ://httpd.apache.org/docs/trunk/expr.html

于 2017-10-25T17:38:11.457 回答