Ich habe die folgende .htaccess-Datei:
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
Ich versuche Besuchern den Zugriff auf die folgende Datei zu verbieten:
domain.com/inscription/log.txt
Aber was ich oben habe, funktioniert nicht: Ich kann weiterhin über den Browser aus der Ferne auf die Datei zugreifen.
<Files>
Richtlinie gilt nur für dieses Verzeichnis" - nein, das gilt nicht. Es gilt für dieses Verzeichnis und alle darunter liegenden Unterverzeichnisse. Also<Files "log.txt">
wird fangen/log.txt
und/inscription/log.txt
.Order Allow,Deny
sie in 2.4 veraltet ist?Starker Mustervergleich - Dies ist die Methode, die ich hier bei Perishable Press verwende. Durch die Verwendung eines starken Mustervergleichs verhindert diese Technik den externen Zugriff auf Dateien, die " .hta ", " .HTA " oder eine Kombination davon enthalten, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird . Zur Veranschaulichung verhindert dieser Code den Zugriff über eine der folgenden Anforderungen:
..etc. usw. Diese Methode ist eindeutig sehr effektiv beim Sichern der HTAccess-Dateien Ihrer Site. Darüber hinaus enthält diese Technik auch die verstärkende Richtlinie „ Alle zufrieden stellen “. Beachten Sie, dass dieser Code in der HTAccess-Stammdatei Ihrer Domain abgelegt werden sollte:
quelle
<Files ~"^\..*">
.Ich glaube nicht, dass die derzeit akzeptierte Antwort richtig ist. Zum Beispiel habe ich die folgende
.htaccess
Datei im Stammverzeichnis eines virtuellen Servers (Apache 2.4):Dies verhindert den externen Zugriff auf
reminder.php
ein Unterverzeichnis. Ich habe eine ähnliche.htaccess
Datei auf meinem Apache 2.2-Server mit dem gleichen Effekt:Ich weiß es nicht genau , aber ich vermute , dass es der Versuch ist das Unterverzeichnis speziell in der definieren
.htaccess
Datei, nämlich<Files ./inscription/log.txt>
die es verursacht scheitern. Es wäre einfacher, die.htaccess
Datei im selben Verzeichnis wielog.txt
dh iminscription
Verzeichnis abzulegen, und es wird dort funktionieren.quelle
Fügen Sie die folgende Zeile in Ihre .htaccess-Datei ein und ersetzen Sie den Dateinamen nach Ihren Wünschen
quelle
Nun, Sie könnten das
<Directory>
Tag zum Beispiel verwenden:Nicht verwenden,
./
da bei einer Verwendung nur/
das Stammverzeichnis Ihrer Site angezeigt wird.Ein ausführlicheres Beispiel finden Sie unter http://httpd.apache.org/docs/2.2/sections.html
quelle
<Directory>
Container ist aber nicht erlaubt.htaccess
. In.htaccess
ist die.htaccess
Datei selbst der " Verzeichniscontainer " (Konfigurationsdatei pro Verzeichnis).Redirect /inscription/log.txt access_denied.html
Dadurch wird der Benutzer weitergeleitet,access_denied.html
wenn der Benutzerinscription/log.txt
in das Beschriftungsverzeichnis wechselt.