Apache 目录列表仅针对特定 IP?

Apache 目录列表仅针对特定 IP?

我如何才能Indexes仅为特定 IP 地址启用?

一般来说,我希望禁用目录列表,但只对特定 IP 启用

答案1

<Directory /path/to/your/dir>
  Options indexes
  order deny,allow
  deny from all
  allow from 192.168.1.101
</Directory>

如果这不能达到你想要的效果(因为除了指定的 IP 之外,任何人都无法访问目录中的任何内容),你可以使用 mod_rewrite 执行一些操作,以实现为特定 IP 启用索引的功能:

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.101
RewriteRule ^/(index\.html)?$ /page_to_kick_people_looking_for_indexes_to.html [L]

答案2

使用 Apache 2 中的 mod_authz_host(或 Apache 1 中的 mod_access),您可以通过 IP 地址(或 IP 地址范围)限制对目录的访问控制。

例如:

<Directory "/path/to/directory/">
Order allow,deny
Allow from XXX.XXX.XXX.XXX
Options Indexes
</Directory>

有关更多信息,请参阅 Apache 页面mod_authz_host

答案3

如果您创建 2 个<Directory />条目,则可以显示特定 IP 或范围的索引并禁用所有其他的索引,如下所示:

<Directory "/path/to/directory">
    Order deny,allow
    Allow from all
    Options -Indexes
</Directory>

<Directory "/path/to/directory">
    Order allow,deny
    Allow from 192.168.1.101
    Options +Indexes
</Directory>

编辑:

我现在看到这也会禁用对单个文件的访问,因此仍然只能从一个 IP/范围访问

相关内容