Page 1 sur 1
htaccess => protéger tous les fichier sauf...
Posté : 15 oct. 2005, 21:04
par Nico128
Salut à tous ! Pour le htaccess, je conais comment protéger tout en répértoire, et j'aimerais savoir si il était possible de protégé tout le répértoire SAUF un fichier qui s'y trouve ?
Voila, merci d'avance
Posté : 15 oct. 2005, 22:04
par Ripat
Code : Tout sélectionner
# Tu verrouilles tous les fichiers
<Files *>
Order Deny,Allow
Deny from All
</Files>
# tu fais sauter le verrou pour ton seul fichier autorisé
<Files ton_fichier_autorise.php>
Order Allow,Deny
Allow from All
</Files>
Posté : 16 oct. 2005, 01:57
par Nico128
J'ai essayé mais c'est pas droit ce que j'attendais.
J'explique un peu, cest tout simple sauf que je ne sais pas comment faire, jai regarder des tutos sur le web mais ca explique toujours la version simple "comment prétégé un répértoire".
Alors voilà : J'ai un forum, et j'aimerais que toutes les pages soit protégées par un login et un mot de passe, sauf 2-3 pages.
Si je mets comme tu as mis, ca marche ! Sauf que ca me demande pas d'identification. Et comme je n'ai rarement touché au htaccess, je sais as comment il faut faire. Je sais juste que pour prégégé mon répértoire cest :
Code : Tout sélectionner
AuthUserFile /home/www/517421f0ca8e8940110726410aa45186/web/forum/admin/.page
AuthName "legend-nintendo.com"
AuthType Basic
<limit GET POST>
require valid-user
</limit>
Voilà, merci d'avance

Posté : 16 oct. 2005, 07:03
par Ripat
Une solution possible est de bloquer l'accès à toutes les pages préfixées par une lettre de convenance, par exemple
i
- ipage-interdite.php
- iautre-page-interdite.html
- page-autorisée.php
Le code:
Code : Tout sélectionner
<FilesMatch "^i.*\.(php|html)$">
AuthType Basic
AuthUserFile /chemin/linux/complet/vers/ton/.htpasswd
AuthGroupFile /dev/null
AuthName intranet
Require valid-user
</FilesMatch>
# Explication du motif de la directive FilesMatch
# ^i veut dire la première lettre est i
# .* tout caractère, 0 ou plusieurs fois
# \. le caractère point
# (php|html)$ qui se termine par php ou html
Si tu ne veux pas renommer toutes tes pages, voici une autre solution:
Code : Tout sélectionner
# si le Request_URI contient un des fichiers autorisés
# on crée une variable d'environnement Apache page_ok
SetEnvIf Request_URI "(page1\.php|page2\.html)$" page_ok
# blocage sélectif de toutes les pages *.html et *.php sauf si page_ok existe
# Allow from env=page_ok autorise l'accès si la variable page_ok existe
<FilesMatch "\.(html|php)$">
Order Deny,Allow
Deny from all
AuthType Basic
AuthUserFile /chemin/linux/complet/vers/ton/.htpasswd
AuthGroupFile /dev/null
AuthName intranet
Require valid-user
Allow from env=page_ok
Satisfy Any
</FilesMatch>
Il y a peut-être plus simple, mais franchement je ne vois pas. Si ce n'est, évidemment, de mettre les fichiers à protéger dans un répertoire et les autres dans un autre.
Posté : 16 oct. 2005, 12:57
par Nico128
Ouais je sais qu'il vaudrait mieux les mettre dans un répértoire a part...mais cest phpbb et cest compliqué avec les theme et tout...
C'est parce que je suis admin du forum, et j'aimerais mettre un admin qui puisse que administrer que quelques pages.
Et donc les pages qu'il pourra administrer, je les laisse protégée par la session admin du forum. Tandis que celle que je veux pas qu'il y accède je les protège par htaccess...
Je sais qu'il existe un mod pour ça, qui s'apelle Junior Admin, mais il est incompatible avec le mod que jaimerais seulement autorisé a cette personne.
Sinon, toutes les pages que j'aimerais laisser libre (sans protection) ont au moin le mot "arcade" comme nom,
Posté : 16 oct. 2005, 14:33
par Ripat
Dans ce cas, le deuxième code me semble plus approprié avec:
Tu rajoutes les extensions que tu veux protéger dans la directive:
Pas très optimisé au niveau architecture de site mais si tu n'as pas le choix...
A essayer dans ton contexte.
Posté : 16 oct. 2005, 15:43
par Nico128
Merci !! Ca marche super !! C'est exactement ce que je voulais
@+