Назад | Перейти на главную страницу

Список каталогов Apache только для определенных IP-адресов?

Как я могу включить 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-адреса / диапазона