8

Мне было просто интересно, можно ли защитить каталог с помощью комбинации имени пользователя и пароля с помощью файлов .htaccess и .htpasswd, но не защитить файлы внутри. т.е. можно связать, скажем, изображения в этом каталоге с друзьями, но просмотр самого каталога не будет разрешен без имени пользователя / пароля. Спасибо всем заранее.

7 ответов7

9

Попробуйте это в вашем .htaccess:

Require valid-user

<Files ?*>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>

Здесь Require valid-user требуется любой известный логин. Затем вы изменяете это ограничение для файлов с хотя бы одним символом в имени - это что за шаблон с глобусом ?* для раздела <Files> будет совпадать - это означает, что прилагаемые правила применяются к файлам, но не к каталогам.

В измененных правилах для файлов ключ Satisfy any . Это позволяет разрешение на удовлетворенный либо полномочия или IP - адрес. Затем вы пропускаете любой IP-адрес, поэтому запросы всегда авторизуются.

Так что теперь просмотр этого каталога или любого из его подкаталогов потребует входа в систему, но непосредственного извлечения файла из него не будет.

Что ты и хотел.

0

Да, вы можете защитить файлы и каталоги по имени или шаблону. Вы уже должны использовать это, чтобы ограничить доступ к файлам .ht *. Проверьте вашу конфигурацию apache. Необходимый шаблон файла, вероятно, будет '/$'.

0

Используйте LocationMatch чтобы ограничить содержимое аутентификации индексом каталога.

0

Вы хотите просто отключить отображение Apache индекса папки. Поместите это в .htaccess:

Options -Indexes

Таким образом, когда пользователи посещают http://www.url.com/folder/ , они получают сообщение об отказе в листинге Справочника . Но когда они посещают http://www.url.com/folder/file.jpg они могут видеть файл.

-1

Если вы хотите, чтобы список каталогов был виден только авторизованным пользователям, но позволял кому-либо загружать файл (чтобы вы могли отправлять ссылки людям), то вам нужен скрипт какого-то типа (PHP, ASP и т.д.), Который запрашивает у пользователя пароль и, если они получат его правильно, отображает содержимое каталога. Вы поместите этот скрипт в каталог и назовете его index.php, чтобы он обслуживался, а не apache, генерирующий индекс каталога.

-1

Да. Добавьте файл index.html, в котором указано содержимое папки, и ограничьте доступ к этому файлу с помощью .htaccess. Если вы хотите, чтобы индекс был динамическим, вам нужно будет использовать какой-то сценарий (или серверную часть) для генерации индекса.

-3

Сделайте chmod 777 над файлами, но не над основной папкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .