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

我怎样才能启用Indexes只为特定的IP地址?

一般来说,我想要禁用目录列表,但只对特定的IP启用

 <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] 

使用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> 

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

如果创build2 <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 /范围访问