Spróbuj tego w swoim .htaccess
:
Require valid-user
<Files ?*>
Order allow,deny
Allow from all
Satisfy any
</Files>
Tutaj Require valid-user
wymaga dowolnego znanego logowania. Następnie zmieniasz to ograniczenie dla plików z co najmniej jedną postacią w nazwie - to jest wzór globu ?*
dla <Files>
sekcja pasuje - co oznacza, że załączone reguły mają zastosowanie do plików, ale nie do katalogów.
W zmienionych zasadach dotyczących plików kluczem jest Satisfy any
. Pozwala to na spełnienie autoryzacji zarówno kwalifikacje lub Adres IP. Wtedy pozwalasz każdy Adres IP do przekazania, więc są żądania zawsze upoważniony.
Więc teraz przeglądanie tego katalogu lub dowolnego z jego podkatalogów wymaga logowania, ale bezpośrednie pobranie pliku z niego nie będzie możliwe.
Tego właśnie chciałeś.
Aristotle Pagaltzis
źródło
LocationMatch
, wymaga wyrażenia regularnego. b) Musisz umieścićrequire valid-user
w środkuLocationMatch
blok oczywiście (dlaczegoLimit
mimo to oświadczenie?)Chcesz po prostu wyłączyć wyświetlanie indeksu folderu Apache. Umieść to w .htaccess:
W ten sposób odwiedzają go użytkownicy
http://www.url.com/folder/
, dostają Odrzucono listę katalogów błąd. Ale kiedy odwiedzająhttp://www.url.com/folder/file.jpg
widzą plik.źródło
Jeśli chcesz, aby lista katalogów była widoczna tylko dla autoryzowanych użytkowników, ale aby każdy mógł pobrać plik (abyś mógł wysyłać linki do ludzi), potrzebujesz skryptu pewnego typu (PHP, ASP itp.), Który prosi użytkownika o hasło, a jeśli je dostanie, wyświetla zawartość katalogu. Skrypt ten należy umieścić w katalogu i nazwać go index.php, aby był obsługiwany, a nie apache generujący indeks katalogów.
źródło
Tak. Dodaj plik index.html, który zawiera zawartość folderu i ogranicz dostęp do tego pliku za pomocą .htaccess. Jeśli chcesz, aby indeks był dynamiczny, musisz użyć jakiegoś skryptu (lub strony serwera), aby wygenerować indeks.
źródło
Wykonaj chmod 777 na plikach, ale nie na głównym folderze.
źródło