Bonjour,
merci d'avoir répondu au sujet même s'il date d'un certain temps déjà...
En fait, j'avais fait la réflexion en un bloc au lieu d'en séparer les constituants.
J'avais voulu mettre une interdiction pour "les fichiers qui ne sont pas abc.php". Il fallait plutôt commencer par interdire tous les fichiers dans le dossier, puis ouvrir une balise pour abc.php qui en autorise l'accès.
Ceci fonctionne:
AuthUserFile /path
AuthName "acces restreint"
AuthType Basic
require user admin
<FilesMatch "^(abc.php|public.htm)$">
Allow From All
Satisfy Any
</Files>
Concernant la balise directory, j'avais déjà essayé, mais cela génère une erreur 500: elle ne peut être utilisée dans un htaccess:
Note that unlike <Directory> and <Location> sections, <Files> sections can be used inside .htaccess files.
(doc apache)
Or je suis en mutualisé, donc pas d'accès au httpd.conf.
Le problème n'est cependant toujours pas résolu car cette solution génère un autre problème: l'autorisation pour le fichier abc.php est héritée dans les sous-dossiers.
Vous allez me dire, il suffit de le nommer de façon unique. Mais lorsque le fichier à autoriser est l'index, cela pose problème ! Je m'explique:
/ accessible à tous
/admin/index.php accessible à tous (page indiquant qu'il faut s'identifier et donnant un lien vers admin.php)
/admin/admin.php accès restreint
/admin/abc.php accès restreint
/admin/module/abc.php accès restreint
/admin/module/index.php accesible à tous !!!
Pour pallier à cela, j'ai donc dû remettre une identification obligatoire dans chaque sous-dossier. Mais c'est pas top.
Si vous avez mieux, je suis toujours preneur.
@+
mti131.