J'essaie de configurer mon fichier Apache .conf pour qu'il refuse la liste d'une certaine catégorie, mais je souhaite autoriser un fichier spécifique à l'intérieur de cette catégorie . Il semble que la règle Directory soit "plus forte" que la règle Files. les deux - je ne peux pas accéder à ce certain fichier.
C'est ce que j'essaye:
<Directory /var/www/denied_directory>
order deny,allow
Deny From All
</Directory>
<Files safefile.php>
Order Allow,Deny
Allow from All
</Files>
Cela fonctionne parfaitement s'il est configuré correctement:
<Directory /var/www/denied_directory>
Order allow,deny
<Files test.php>
Order deny,allow
</Files>
</Directory>
Dans Apache 2.4, avec un test supplémentaire sur une variable d’environnement:
Voir aussi: Require Directive
<Directory "/wikis/foswiki">
Require all denied
# Allow access to toplevel files ending in .html (in particular index.html) only
# (comment out if you don't care for this)
<Files ~ "\.html$">
<RequireAll>
Require all granted
Require not env blockAccess
</RequireAll>
</Files>
</Directory>
placez votre directive files dans votre directive directory.
Autoriser un fichier spécifique lorsque l'accès est restreint par un mot de passe HTTP. Attention, la protection par mot de passe est définie sur la base du système de fichiers et les fichiers autorisés spécifiques sont définis par URI. Mis à jour pour Apache 2.4.
<Directory /path/to/directory/>
AuthName SecureArea
AuthType Basic
AuthUserFile /path/to/passwd-file
Require user my-user
SetEnvIf Request_URI "path/to/uri-allowed-1.php" allowedURL
SetEnvIf Request_URI "path/to/uri-allowed-2.php" allowedURL
Require env allowedURL
</Directory>