J'ai le fichier .htaccess suivant:
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
J'essaie d'interdire aux visiteurs d'accéder au fichier suivant:
domain.com/inscription/log.txt
mais ce que j'ai ci-dessus ne fonctionne pas: je peux toujours accéder au fichier à distance depuis le navigateur.
<Files>
directive ne s'applique qu'à cet annuaire" - non. Cela s'applique à ce répertoire et à tous les sous-répertoires en dessous. Alors<Files "log.txt">
va attraper/log.txt
et/inscription/log.txt
.Order Allow,Deny
est obsolète dans la version 2.4?Correspondance de motif forte - C'est la méthode que j'utilise ici chez Perishable Press. En utilisant une forte correspondance de motifs, cette technique empêche l'accès externe à tout fichier contenant « .hta », « .HTA » ou toute combinaison insensible à la casse de ceux-ci. Pour illustrer, ce code empêchera l'accès via l'une des demandes suivantes:
..etc., etc. De toute évidence, cette méthode est très efficace pour sécuriser les fichiers HTAccess de votre site. En outre, cette technique inclut également la directive fortifiante « Satisfy All ». Notez que ce code doit être placé dans le fichier racine HTAccess de votre domaine:
la source
<Files ~"^\..*">
.Je ne pense pas que la réponse actuellement acceptée soit correcte. Par exemple, j'ai le
.htaccess
fichier suivant à la racine d'un serveur virtuel (apache 2.4):Cela empêche l'accès externe à
reminder.php
qui se trouve dans un sous-répertoire. J'ai un.htaccess
fichier similaire sur mon serveur Apache 2.2 avec le même effet:Je ne sais pas avec certitude mais je soupçonne que c'est la tentative de définir le sous-répertoire spécifiquement dans le
.htaccess
fichier, c'est-à - dire<Files ./inscription/log.txt>
qui provoque son échec. Il serait plus simple de mettre le.htaccess
fichier dans le même répertoire quelog.txt
ie dans leinscription
répertoire et cela fonctionnera là-bas.la source
Placez la ligne ci-dessous dans votre fichier .htaccess et remplacez le nom du fichier comme vous le souhaitez
la source
Eh bien, vous pouvez utiliser la
<Directory>
balise par exemple:Ne pas utiliser
./
car si vous utilisez simplement,/
il regarde le répertoire racine de votre site.Pour un exemple plus détaillé, visitez http://httpd.apache.org/docs/2.2/sections.html
la source
<Directory>
conteneur n'est pas autorisé.htaccess
. Dans.htaccess
, le.htaccess
fichier lui-même est le " conteneur de répertoire " (fichier de configuration par répertoire).Redirect /inscription/log.txt access_denied.html
Cela redirigera l'utilisateur versaccess_denied.html
si l'utilisateur se rendinscription/log.txt
dans le répertoire d'inscription.