.htaccess защитить пароль, но разрешить типы файлов изображений

Мне нужно защитить паролем каталог с .htaccess, который я успешно выполнил. Но передняя часть веб-сайта была запрограммирована на ссылку на изображения в этом каталоге, защищенном паролем (не мной), но когда веб-страница пытается получить доступ к этим изображениям, она запрашивает у пользователя логин.

Возможно ли защитить паролем этот каталог, но разрешить любой доступ к любому типу файла изображения, например *.jpg и *.gif?

Мой текущий код .htaccess:

AuthName "Secure Area"
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd"
AuthType Basic
require valid-user

Спасибо за любую помощь!

Ответ 1

AuthName "Secure Area"
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd"
AuthType Basic
require valid-user
<FilesMatch "\.(png|jpe?g|gif)$">
  Satisfy Any
  Allow from all
</FilesMatch>

Изменить, чтобы включить улучшение Shef

Ответ 2

Вы можете проверить все различные параметры конфигурации. htaccess предоставляет вам следующий сайт:

Глупые трюки htaccess

Ответ 3

Вы пытались поместить его в Filematch?

<FilesMatch "^.*(png|jpe?g|gif)$">
AuthName "Secure Area"
AuthUserFile "/home/siteuser/.htpasswds/public_html/admin/passwd"
AuthType Basic
require valid-user
</FilesMatch>

Ответ 4

Что вы можете попробовать - написать прокси-сервер изображения:

  • Сохраните каталог, как он есть сейчас, с защитой паролем.
  • В .htaccess в корне сайта, на котором связаны изображения, добавьте правило перезаписи для тех типов изображений, которые вы хотите. Это правило должно перенаправить вызов на обработчик PHP script.
  • script должен оценить запрашиваемый путь, загрузить файл из файловой системы, вычесть его заголовок и отправить его клиенту с помощью header(), за которым следует содержимое файла изображений echo file_get_contents().

PHP не влияет на .htaccess, поэтому он должен иметь возможность читать необходимый файл и прокси-серверу для конечного пользователя.