Как я могу включить Indexes
только для определенных IP-адресов?
Как правило, я хочу, чтобы список каталогов был отключен, но был включен только для определенного IP-адреса.
<Directory /path/to/your/dir>
Options indexes
order deny,allow
deny from all
allow from 192.168.1.101
</Directory>
Если это не дает того, что вы хотите (поскольку ничто в каталоге недоступно для кого-либо, кроме указанного IP-адреса), вы можете сделать что-то, что выполняет то, что кажется включением индексов для определенного IP-адреса с помощью mod_rewrite:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.101
RewriteRule ^/(index\.html)?$ /page_to_kick_people_looking_for_indexes_to.html [L]
Используя mod_authz_host в Apache 2 (или mod_access в Apache 1), вы можете ограничить контроль доступа к Каталогу по IP-адресу (или диапазону IP-адресов).
Например:
<Directory "/path/to/directory/">
Order allow,deny
Allow from XXX.XXX.XXX.XXX
Options Indexes
</Directory>
Для получения дополнительной информации см. Страницу Apache для mod_authz_host.
Если вы создадите 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-адреса / диапазона