Mam następujący plik .htaccess:
RewriteEngine On
RewriteBase /
# Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
# Protect log.txt
<Files ./inscription/log.txt>
Order Allow,Deny
Deny from all
</Files>
# Disable directory browsing
Options All -Indexes
Próbuję zabronić odwiedzającym dostępu do następującego pliku:
domain.com/inscription/log.txt
ale to, co mam powyżej, nie działa: nadal mogę uzyskać zdalny dostęp do pliku z przeglądarki.
<Files>
dyrektywy dotyczy tylko tego katalogu” - nie, nie ma. Dotyczy tego katalogu i wszystkich podkatalogów pod nim. Więc<Files "log.txt">
złapie/log.txt
i/inscription/log.txt
.Order Allow,Deny
jest przestarzała w wersji 2.4?Silne dopasowanie wzorców - to jest metoda, której używam w Perishable Press. Używając silnego dopasowania wzorców, technika ta zapobiega zewnętrznemu dostępowi do dowolnego pliku zawierającego „ .hta ”, „ .HTA ” lub ich kombinacji bez rozróżniania wielkości liter. Aby to zilustrować, ten kod uniemożliwi dostęp przez którekolwiek z następujących żądań:
..etc., itd. Oczywiście ta metoda jest bardzo skuteczna w zabezpieczaniu plików HTAccess Twojej witryny. Co więcej, technika ta obejmuje również wzmacniającą dyrektywę „ Satisfy All ”. Pamiętaj, że ten kod należy umieścić w głównym pliku HTAccess domeny:
źródło
<Files ~"^\..*">
.Nie sądzę, aby obecnie zaakceptowana odpowiedź była poprawna. Na przykład mam następujący
.htaccess
plik w katalogu głównym serwera wirtualnego (Apache 2.4):Zapobiega to dostępowi zewnętrznemu, do
reminder.php
którego znajduje się w podkatalogu. Mam podobny.htaccess
plik na moim serwerze Apache 2.2 z takim samym skutkiem:Nie wiem na pewno, ale podejrzewam, że jest to próba zdefiniowania podkatalogu konkretnie w
.htaccess
pliku, a mianowicie,<Files ./inscription/log.txt>
która powoduje jego niepowodzenie. Byłoby prościej umieścić.htaccess
plik w tym samym katalogu colog.txt
np. Winscription
katalogu i tam będzie działał.źródło
Umieść poniższą linię w swoim pliku .htaccess i zmień nazwę pliku, jak chcesz
źródło
Cóż, możesz użyć
<Directory>
tagu na przykład:Nie używaj,
./
ponieważ jeśli po prostu używasz/
, patrzy na katalog główny Twojej witryny.Bardziej szczegółowy przykład można znaleźć pod adresem http://httpd.apache.org/docs/2.2/sections.html
źródło
<Directory>
pojemnik nie jest dozwolony.htaccess
. W.htaccess
The.htaccess
sam plik jest „ kontenerem katalogu ” (plikiem konfiguracyjnym dla każdego katalogu).Redirect /inscription/log.txt access_denied.html
To przekieruje użytkownika do,access_denied.html
jeśli użytkownik przejdzie doinscription/log.txt
katalogu inskrypcji.