Création
d'entreprise
Posez votre question Signaler

[htaccess]protéger un dossier SAUF un fichier

mti131 - Dernière réponse le 25 oct. 2008 à 23:34
Bonjour à tous,
j'ai un .htaccess qui se présente sous cette forme dans le repertoire "protected" :
AuthUserFile /chemin du htpasswd
AuthName "L'accès à ce dossier est réservé à l'admin du site..."
AuthType Basic

require user admin

J'aurais voulu rendre le fichier abc.php situé dans ce repertoire "protected" accessible au public.
J'ai essayé de mettre
<FilesMatch "[^(abc.php)]">
AuthUserFile /path
AuthName "L'accès à ce dossier est réservé à l'admin du site..."
AuthType Basic

require user admin
</FilesMatch>
Mais erreur 500 :(
Savez-vous s'il est possible de le faire d'une autre façon ou si j'ai juste mal fait mon expression régulière ?
Merci d'avance,
mti131
Lire la suite 

[htaccess]protéger un dossier SAUF un fichier »

Suggestions
6 réponses
Réponse
+3
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
J'ai toujours ce problème depuis le temps...
Je ne peux pas croire que ce dont j'ai besoin est impàossible ? Apache est trop flexible pour ne pas offrir cela !

Merci d'avance de vos réponses, je suis dans la mouise... :(
Ajouter un commentaire
Réponse
+0
moins plus
j'essaye de faire ça aussi je n'y arrive pas :(
Ajouter un commentaire
Réponse
+0
moins plus
Je viens de trouver:

<FilesMatch "[^(rss.php)]">
AuthUserFile /home/path/lechien/.htpasswd
AuthGroupFile /dev/null
AuthName "Prive"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
</FilesMatch>


c'est pourtant la même chose que ce que tu as fait...

et je suis aussi sur Apache 1.3.37 (linux)
voici les détails de ma config :
http://start.ovh.net/infos/
Ajouter un commentaire
Réponse
+0
moins plus
Je n'ai plus d'erreur 500, mais ce code est malheureusement totalement inefficace.
Je ne peux pas accéder au répertoire entier.

La seule différence... euh, tu as linux et moi unix. Sinon, peut-être que 1&1 ne connaît pas "<FilesMatch>"...

@+

mti131
Ajouter un commentaire
Réponse
+0
moins plus
<Directory "/cheminDuRepertoireAProteger">
<FilesMatch fichierAutoriser.php*>
Order allow,deny
Allow from all
</FilesMatch>
Order deny,allow
Deny from all
</Directory>


moi j'ai mis sa dans mon httpd.conf... Je pense que si tu le mets dans un .htaccess cela fonctionnera si le dossier a un AllowOverride All sur lui dans httpd.conf

je pense que tu as corriger le probleme depuis le temps ;-)
Ajouter un commentaire
Ce document intitulé « [htaccess]protéger un dossier SAUF un fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?