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

Igo*_*hin 7 apache httpd.conf

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

Cod*_*uer 10

这可以通过<If>Expression实现.

这是你的vhost/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>
Run Code Online (Sandbox Code Playgroud)

使用Ubuntu Server和Windows使用Apache 2.4进行测试 - 遗憾的是,这不适用于较旧的Apache版本.


对于IP范围,可以使用其他方式检查IP:

<If "%{REMOTE_ADDR} -ipmatch '10.0.0.0/8'">
Run Code Online (Sandbox Code Playgroud)

或者更快的方法是-R:

<If "-R '192.168.0.0/16' || -R '10.0.248.0/24'">
Run Code Online (Sandbox Code Playgroud)