htaccess => protéger tous les fichier sauf...

Eléphant du PHP | 246 Messages

15 oct. 2005, 21:04

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
Modifié en dernier par Nico128 le 16 oct. 2005, 02:09, modifié 1 fois.

ViPHP
ViPHP | 1380 Messages

15 oct. 2005, 22:04

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>
ripat

Eléphant du PHP | 246 Messages

16 oct. 2005, 01:57

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 :D

ViPHP
ViPHP | 1380 Messages

16 oct. 2005, 07:03

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.
ripat

Eléphant du PHP | 246 Messages

16 oct. 2005, 12:57

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,

ViPHP
ViPHP | 1380 Messages

16 oct. 2005, 14:33

Dans ce cas, le deuxième code me semble plus approprié avec:

Code : Tout sélectionner

SetEnvIf Request_URI "arcade" page_ok
Tu rajoutes les extensions que tu veux protéger dans la directive:

Code : Tout sélectionner

<FilesMatch "\.(html|php|txt|gif)$">
Pas très optimisé au niveau architecture de site mais si tu n'as pas le choix...

A essayer dans ton contexte.
ripat

Eléphant du PHP | 246 Messages

16 oct. 2005, 15:43

Merci !! Ca marche super !! C'est exactement ce que je voulais :D

@+