Bonjour,
Je suis débutant en php et je veux mettre en place l'identification via un fichier .htaccess pour gagner du temps sur l'administration des utilisateurs (vu qu'il y en aura peu).

AuthType Basic
AuthName "Page d'administration protégée"
AuthUserFile "MonCheminEtFichierPassword
Require valid-user

Ca ok cela fonctionne sans problème. Sauf que sur le site j'ai un flux json retourné via une page php (création du json via des données en bdd)

J'aimerai donc autorisé le fichier (voir répertoire suivant la faisabilité) sans que cela demande le login et le mot de passe. Bien sûr je ne souhaite pas passer le login et mdp dans l'url pour accéder au fichier.

J'ai trouvé des choses sur le net mais cela ne fonctionne pas.

<Directory “/home/..../..../monRep/monRepFlux”>
Allow from all
</Directory>
<FilesMatch "/home/..../..../monRep/monRepFlux/MonFichier\.php$">
    Order Allow,Deny
    Allow from all
</FilesMatch>
SetEnvIf Request_URI "(/home/..../..../monRep/monRepFlux/MonFichier\.php)$"         allow
Order allow,deny
Allow from env=allow
Satisfy any

Dans tous cela rien ne fonctionne. Voir même dans des cas cela plante le site.

Est ce que quelqu'un sait ce qu'il faudrait mettre exactement. J'aurai plus une préférence pour le fichier que le dossier mais l'information des 2 pourrait être utile pour le futur.

5 réponses


JC Little
Auteur
Réponse acceptée

Merci, je pensais qu'il n'y avait qu'un seul fichier .htaccess pour tout le site.
Donc je viens d'en ajouter le fichier avec le code suivant :

AuthType Basic
SetEnvIf Request_URI "(MonFichier\.php)$"  allow
Order allow,deny
Allow from env=allow
Satisfy any

Bonjour, il vous faut mettre cela dans chaque dossier :

.htaccess :

AuthType Basic
AuthName "Page d'administration protégée"
AuthUserFile "MonCheminEtFichierPassword"
<Limit GET POST>
     require user name-of-user
</Limit>

Pour le .htpasswd pas besoin de le mettre partout, il suffit de le mettre dans un dossier souhaitait :)
.htpasswd :

user1:motdepassecrypter
user2:motdepassecrypter
user3:motdepassecrypter

** motdepassecrypter = <?= crypt('mon mot de passe'); ?>

Problème résolu ?

Désolé de la réponse tardive vu que j'ai fait autre chose entre.
Oui c'est bon avec le code que j'ai mis, fallait juste mettre un fichier .htaccess dans le répertoire et ne pas le mettre l'instruction dans le fichier avec le chemin.

Vous pouvez donc mettre votre sujet en résolue :)