2011-07-28 27 views
11

Potrzebuję ochrony katalogu hasłem .htaccess, który z powodzeniem wykonałem. Jednak przedni koniec strony internetowej został zaprogramowany tak, aby łączył się z obrazami w tym chronionym hasłem katalogu (nie przeze mnie), ale kiedy strona próbuje uzyskać dostęp do tych obrazów, prosi użytkownika o zalogowanie..htaccess chroni katalog hasłami, ale zezwala na typy plików obrazów

Czy można zabezpieczyć hasłem ten katalog, ale zezwolić na dostęp do dowolnego typu pliku obrazu, takiego jak * .jpg i * .gif?

Mój obecny kod .htaccess to:

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

Dzięki za wszelką pomoc!

Odpowiedz

14
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> 

Edit włączyć poprawa Shef za

+1

+1. Krótki i słodki! Chociaż regex powinien zostać zmieniony tak, aby pasował tylko od końca ciągu 'FilesMatch \ '(png | jpe? G | gif) $" '. – Shef

+0

Doskonale, działało idealnie, dzięki! – Kevin

0

Czy próbowałeś umieścić go w Filematch?

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

to nie będzie działać. zabezpiecza obrazy, ale nie inne dokumenty. Przeciwko temu, co OP chce – genesis

-1

Co można spróbować jest napisanie proxy wyświetlania obrazu:

  • utrzymać katalog jak masz to teraz, z ochroną hasłem.
  • Na .htaccess w katalogu głównym witryny, z której obrazy są połączone, dodaj regułę przepisywania dla tych typów obrazów, które chcesz. Ta reguła powinna przekierować wywołanie do skryptu obsługi PHP.
  • Ten skrypt powinien ocenić żądaną ścieżkę, wczytać plik z systemu plików, odliczyć jego nagłówek i wysłać go do klienta za pomocą header(), a następnie treść pliku obrazu echo file_get_contents() powinna zrobić.

PHP nie ma wpływu. Htaccess, więc powinien być w stanie odczytać plik, który potrzebujesz i pośredniczyć go do użytkownika końcowego.

Powiązane problemy