基于 IP 的 Apache 2.4 mod_authz_host 使用 htaccess 启用索引(文件夹视图)
Posted
技术标签:
【中文标题】基于 IP 的 Apache 2.4 mod_authz_host 使用 htaccess 启用索引(文件夹视图)【英文标题】:Enabling Indexes (folder views) using htaccess with Apache 2.4 mod_authz_host based on IP 【发布时间】:2015-05-05 23:59:45 【问题描述】:需要通过基于IP的htaccess在apache 2.4中启用索引。
例如,IP 192.168.x.x
我尝试将指令放在 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 文件中执行此操作。
【问题讨论】:
【参考方案1】:这有效,它显示“禁止访问,您无权访问此服务器上的 /folder/。”而不是“目录列表被拒绝”。我仍然可以访问该文件夹中的文件。
<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
由于某种原因,如果未启用索引,则用户无权访问此文件夹中的内容。我只是想禁用目录列表,而不是阻止访问该文件夹中的文件。
【讨论】:
惊讶这已经持续了 2 天,没有人试图回答或评论.. 没有人关心 apache 2.4 ??【参考方案2】:谢谢!这就是我一直在寻找的东西,而且它有效。
至于你的问题……
两者都有效。我唯一的问题是我不想指定完整的 IP。我宁愿它使用IP的前3个字节:192.168.0.xxx
试试这个:<If "-R '192.168.0.0/24'">
参考:http://httpd.apache.org/docs/trunk/expr.html
【讨论】:
以上是关于基于 IP 的 Apache 2.4 mod_authz_host 使用 htaccess 启用索引(文件夹视图)的主要内容,如果未能解决你的问题,请参考以下文章
apache 2.4 配置httpd:添加域名禁止IP访问网站