htaccess & htpasswd

Eléphant du PHP | 53 Messages

23 mars 2007, 11:16

Salut,

J'ai fait pas mal de tuto sans pouvoir résussir à bloquer l'entrée d'un répertoire sous apache par la méthode des fichiers .htaccess & .htpasswd

Mon fichier .htpasswd :

(génération du pass crypter md5 sous linux)

Code : Tout sélectionner

htpasswd -m .htpasswd toto New password: xxx Re-type new password: xxx
ce qui donne un truc du genre dans le fichier

toto:skdjfhuosdklsd

Mon fichier.htaccess :

Code : Tout sélectionner

AuthUserFile /var/www/monrep/.htpasswd AuthGroupFile /dev/null AuthName "Accès réservé" AuthType Basic < Limit GET POST > require valid-user < /Limit >
Et j'affiche le contenu de "monrep" sans aucun blocage :?
Si vous avez une idée je suis preneur

@+ Thegritch

ViPHP
ViPHP | 1380 Messages

23 mars 2007, 11:34

C'est plutôt un sujet pour Gestion serveur ça non?

Quoi qu'il en soit, premier test, fais une erreur syntaxique volontaire dans ton .htaccess pour voir?

Par exemple:

Code : Tout sélectionner

AuthUserFileHelloLeSoleilBrille var/www/monrep/.htpasswd
ripat

Eléphant du PHP | 53 Messages

23 mars 2007, 11:39

Merci pour ta réponse,

En effet, c'est peut être un post à déplacer dans une rubrique sécurité ou gestion de serveur.

Sinon, en mettant une grosse erreur de syntaxe : pas d'erreur de la part LAMP. Tout s'ouvre sans blocage :? Donc les fichiers ne seraient pas interprétés ? pourquoi donc ? je sèche là :(

ViPHP
ViPHP | 1380 Messages

23 mars 2007, 12:07

C'est que ton .htaccess n'est pas lu par le serveur http. Regarde dans ton fichier de config d'Apache si tu trouves la directive AllowOverride All pour le répertoire web.

Si elle ne s'y trouve pas, mets-la et redémarre Apache.
ripat

Eléphant du PHP | 53 Messages

23 mars 2007, 12:51

Merci je cherche, je ferais part de mes trouvailles :P

Eléphant du PHP | 53 Messages

23 mars 2007, 13:11

yop

Bon, il n'existait pas dans mon apache2.conf ceci :

Code : Tout sélectionner

<Directory /var/www/monrep/> AllowOverride All order allow,deny allow from all </Directory>
Je l'ai rajouté, et redemarrer apache avec comme erreur, une fois arriver dans le répertoire protégé, ceci :

Code : Tout sélectionner

Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log.
je cherche donc la bonne configuration du Directory ... si vous avez des idées / url autre je suis preneur !

@+ Thegritch

Invité
Invité n'ayant pas de compte PHPfrance

23 mars 2007, 14:13

Ton message d'erreur provient d'une erreur de syntaxe dans le .htaccess.

Mais au moins il est lu maintenant.

Invité
Invité n'ayant pas de compte PHPfrance

23 mars 2007, 14:44

J'avais laissé "HelloLeSoleilBrille" comme une grosse buse.

Mais sans aucune erreur dans le .htaccess le message d'erreur perdure :(

Mon apache2.conf :

Code : Tout sélectionner

<Directory /var/www/monrep/> AllowOverride All order allow,deny allow from all </Directory>
Mon .htaccess :

Code : Tout sélectionner

AuthUserFile /var/www/monrep/.htpasswd AuthGroupFile /dev/null AuthName "Accès réservé" AuthType Basic < Limit GET POST > require valid-user < /Limit >
mais j'ai toujours la même erreur : internal erreur...
J'ai essayé sans succès diverses exemple de directory :

Code : Tout sélectionner

<Directory /var/www/> Options Indexes Includes FollowSymlinks MultiViews AllowOverride AuthConfig Order allow,deny Allow from all </Directory>
Si vous avez des idées ... je sèche ... cela devrais marcher :(

ViPHP
ViPHP | 1380 Messages

23 mars 2007, 15:27

Apache aime une syntaxe précise! Pas d'espaces inutiles dans les balises.

Code : Tout sélectionner

<Limit GET POST> require valid-user </Limit>
ripat

Eléphant du PHP | 53 Messages

23 mars 2007, 15:30

MERCIIIIIII !
sa****** de balise...

Tout fonctionne comme je le voulais.
Un grand merci encore une fois.