Я использую этот простой файл .htaccess в папке для загрузки мультимедиа, чтобы клиент мог видеть, что было загружено.
Options +Indexes
IndexOptions +FancyIndexing
Можно ли добавить директиву, ограничивающую доступ только к нескольким IP-адресам? Как правило, мы не слишком беспокоимся о их безопасности, поэтому мы не защищаем их с помощью настройки пользователя / пароля. Однако немного безопасности не повредит :)
Бонусный вопрос ... (действительно выдавая мое отсутствие конфигурации apache здесь): возможно ли настроить тип if..else, чтобы, если у посетителя нет распознанного IP-адреса, он перенаправлялся на конкретная страница.
Ура! Бен
Если вы хотите ограничить по IP, просто добавьте
<Directory /path/to/the/folder>
Options +Indexes
IndexOptions +FancyIndexing
Order deny,allow
Deny from all
Allow from X.X.X.X
</Directory>
Если у вас есть шаблон в IP-адресе, вы также можете кратко сформулировать правило. Например, если вы хотите разрешить IP, начинающийся с 192.
затем
Allow from 192
разрешит все IP, начинающиеся с 192.
Бонусный вопрос: вы не хотите просто предотвращать загрузку страниц из внешних сетей, но хотите отправить их на другую страницу, модуль mod_rewrite из apache может прийти на помощь. Предполагая, что ваша локальная сеть 192.168.1.0/24:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1
RewriteCond !^/page_to_redirect
RewriteRule .* /page_to_redirect [R,L]
Поиграйте с этим.
Так как это первый список в индексе Goggle для "apache directory only allow ip", а также для тех, кто хочет ограничить доступ по IP. Если вы используете Apache версии 2.3 или более поздней, вам следует использовать Требовать директива.
Взято из документации Apache:
Require all granted
Access is allowed unconditionally.
Require all denied
Access is denied unconditionally.
Require env env-var [env-var] ...
Access is allowed only if one of the given environment variables is set.
Require method http-method [http-method] ...
Access is allowed only for the given HTTP methods.
Require expr expression
Access is allowed if expression evaluates to true.
Some of the allowed syntaxes provided by mod_authz_user, mod_authz_host, and mod_authz_groupfile are:
Require user userid [userid] ...
Only the named users can access the resource.
Require group group-name [group-name] ...
Only users in the named groups can access the resource.
Require valid-user
All valid users can access the resource.
Require ip 10 172.20 192.168.2
Clients in the specified IP address ranges can access the resource.
Требовать ссылку на документы директивы: https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require
Также смотрите здесь: https://httpd.apache.org/docs/2.4/howto/access.html
См. Также параметры индексирования: https://httpd.apache.org/docs/2.4/mod/mod_autoindex.html