Magazine

#93 - Le fichier .htaccess chez Free "pour les nuls" (3)

Publié le 07 octobre 2007 par Geraldb

J'ai essayé de faire le tour des instructions supportées par le fichier .htaccess chez Free. Le dernier volet de cette "mini-série" est consacré aux restrictions par mots de passe...

Petit résumé...

Pour ceux qui auraient manqué le début, j'ai d'abord commencé par les instructions les plus simples et les redirections. J'ai ensuite traité les moyens d'interdire ou d'autoriser une adresse IP...
Même si les possibilités du fichier .htaccess sont "assez limitées" chez Free, sachez qu'il est aussi possible de restreindre les répertoires avec des mots de passe...

Restreindre un répertoire entier...

Pour limiter l'accès à tout un répertoire, voici les instructions à placer dans votre .htaccess :

PerlSetVar AuthFile URL_relative/.htpasswd
AuthName "Acces Restreint"
AuthType Basic
require valid-user

La première ligne est très importante puisqu'elle indique le chemin du fichier contenant les mots de passe autorisés. Je précise que URL_relative/.htpasswd, c'est le chemin relatif vers .htpasswd (à partir de la racine de votre site). Et contrairement à ce qu'on peut lire sur certaines FAQs (chez Free !), PerlSetVar doit bien se trouver sur la même ligne que AuthFile !

Autoriser l'accès au répertoire mais limiter l'accès à certains fichiers en particulier...

Vous voulez que tout soit accessible sauf quelques fichiers. Voici les instructions :

<Files *.xxx>
PerlSetVar AuthFile URL_relative/.htpasswd
AuthName "Fichier Restreint"
AuthType Basic
require valid-user
</Files>

C'est le même code que l'exemple précédent, sauf qu'on a rajouté les balises <Files>. On peut limiter l'accès à tous les fichiers ayant la même extension (<Files *.mp3>, par exemple, pour protéger tous les fichiers .mp3) ou viser un fichier en particulier (<Files secret.txt> pour empêcher que les personnes non autorisées voient le contenu du fichier secret.txt).

Attention : Une seule balise <Files> est tolérée par fichier .htaccess. Sinon, c'est l'erreur 500 !
Par contre, dans un même fichier .htaccess, on peut à la fois limiter un répertoire complet et avoir une section <Files> pour contrôler l'accès à certains fichiers.

Le fichier qui contient les mots de passe...

Par des raisons pratiques, on nomme ce fichier .htpasswd mais ce n'est pas une obligation. C'est juste très fortement recommandé... Sur un serveur, le fait qu'un nom de fichier commence par un point le rend invisible. C'est un bon début mais ça ne suffit pas [1] ! Par contre, un fichier nommé .htpasswd est absolument inaccessible (sauf par FTP, évidemment).

Les noms d'utilisateurs et les mots de passe qu'il contient sont de la forme :

nom:motdepasse

Et si vous voulez attribuer des mots de passe différents à plusieurs personnes, il suffit de créer autant de lignes qu'il y a de mots de passe :

nom1:motdepasse1
nom2:motdepasse2
nom3:motdepasse3
...

Toujours une erreur 500 ?

A l'heure actuelle, Free n'accepte ni l'URL Rewriting (ce qu'on appelle aussi les Rewrite Rules) ni les mots de passe cryptés... Pour les mots de passe cryptés, c'est juste un niveau de sécurité supplémentaire (au cas où...) mais ce n'est pas indispensable. Par contre, c'est bien dommage pour l'URL Rewriting ! On peut contourner ça en passant par un script PHP mais bien-sûr, c'est un peu plus complexe...

Si malgré tout ça, votre fichier .htaccess ne marche toujours pas, vérifiez bien quelques points :

  1. Le transfert du fichier sur le serveur doit se faire en ASCII
  2. Une seule instruction par ligne
  3. Attention à la casse !
  4. Evitez les espaces inutiles (en fin de ligne, par exemple)
  5. Evitez les accents (dans le fichier .htpasswd, par exemple)
  6. Certaines URL relatives commencent par un slash (/) et d'autres non...
  7. Vérifiez que vous n'avez pas fait de faute dans les URL (Ca peut paraitre bête, mais vérifiez quand même !)
  8. Vérifiez que toutes vos instructions sont bien supportées par les serveurs Free
  9. Relisez-vous
  10. Relisez-vous encore un fois...

A bientôt...

Notes

[1] Le fait qu'il soit "invisible" ne le rend pas "inaccessible" pour autant...


Retour à La Une de Logo Paperblog

A propos de l’auteur


Geraldb Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte