Apache HTTP Server:如何将对目录列表的访问限制在某些 IP 范围内?

Posted

技术标签:

【中文标题】Apache HTTP Server:如何将对目录列表的访问限制在某些 IP 范围内?【英文标题】:Apache HTTP Server: How to restrict access to directory listings to some ip ranges? 【发布时间】:2015-09-17 08:48:23 【问题描述】:

在 Apache HTTP Server 2.4 中:如何将对目录列表的访问限制在某些 ip 范围内?文件仍应可通过 URL 公开下载,但目录列表应受到限制。

【问题讨论】:

是否可以选择阻止一系列 ip 的索引页面? 【参考方案1】:

<If> Expression 可以做到这一点。

这是你的虚拟主机/conf:

<VirtualHost *:80>
        DocumentRoot /var/www/html

        Options -Indexes        # disable listing
        <If "%REMOTE_ADDR == '10.0.0.5'">
            Options +Indexes    # enable listing if ip matches
        </If>
</VirtualHost>

<Directory /var/www/html>
        Require all granted
</Directory>

在 Ubuntu Server 和带有 Apache 2.4 的 Windows 上对其进行了测试——遗憾的是,这不适用于旧 Apache 版本。


对于 IP 范围,可以使用另一种方式来检查 IP:

<If "%REMOTE_ADDR -ipmatch '10.0.0.0/8'">

或者更快的方法是-R:

<If "-R '192.168.0.0/16' || -R '10.0.248.0/24'">

【讨论】:

感谢您的赏金和-R 的提示 - 文档说它也更有效。

以上是关于Apache HTTP Server:如何将对目录列表的访问限制在某些 IP 范围内?的主要内容,如果未能解决你的问题,请参考以下文章

Apache HTTP Server

如何安装Apache HTTP Server

windows 下 的 Apache http server 怎么发布项目?

如何使http请求强制跳转到https

如何安装Apache HTTP Server

搭建Apache HTTP Server(编译安装)