Les fichiers .htaccess
Voici la liste des différents chapitres qui seront abordés dans cette partie:

Présentation du fichier .htaccess
Protection par mot de passe
Page d'erreurs personalisée
Redirection automatique


Présentation du fichier .htaccess


Lorsque vous créez un site, vous êtes vite amenés à créer une zonde d'administration. c'est alors que commencent vos angoisses. Comment protéger efficacement ce répertoire?
La méthode la plus sûre est d'utiliser un fichier .htaccess. Mais ce n'est pas tout ce que peut faire ce fichier! Il peut aussi pous permettre de créer un page d'erreurs personalisés et pour finir, grâce à lui, vous pourrez créer une redirection permanente de vos pages.

: il se peut que votre hébergeur ne supporte pas les fichiers .htaccess.

:les fichiers .htaccess sont ce qu'il y a de plus sécurisé pour la protection des pages d'administration mais il n'est pas sûr à 100%. Le meilleur moyen d'être tranquille, c'est de ne pas créer de zone d'administration.


Le fichier .htaccess n'est qu'un bête fichier texte. Ouvrez donc votre bloc-notes préféré et créez un fichier vide appellé .htaccess . Nous le remplirons plus tard.

: n'oubliez pas le point devant le nom du fichier sinon il sera inutilisable.

:si votre ordinateur refuse de créer un fichier dont le nom commence par un point, appellez-le htaccess.txt. Nous le renommerons plus tard.



Protection par mot de passe


Nous allons commencer par voir comment protéger une ou plusieurs pages par un mot de passe. Pour ce faire, ouvrez votre fichier .htaccess et copiez-y ceci:

AuthName "Zone d'administration protégée!"
AuthType Basic
AuthUserFile "/index/www/free-h/theprogrammeur/.htpasswd"
Require valid-user

Dans ces quatres lignes, il n'y en a que deux que vous pouvez modifier:
AuthName: texte qui invitera le visiteur à inscrire son login et son mot de passe pour s'identifier.
AuthUserFile "/index/www/free-h/theprogrammeur/.htpasswd": chemin absolu vers le fichier .htpasswd.
Le fichier .htpasswd est un fichier qui contiendra la liste des utilisateurs et des mots de passe. Nous allons le créer peu après.

Comment trouver le chemin absolu du .htpasswd?


C'est très simple, créez un fichier nommé chemin.php et placez-y juste les balises de base du HTML et cette ligne de code:

<?php
echo realpath("chemin.php");
?>

Placez ce fichier dans le répertoire que vous voulez protéger (généralement ce répertoire sera appelé admin) et envoyez-le sur le net. Ouvrez-le, vous verrez alors le chemin absolu vers le fichier chemin.php. Remplacez chemin.php par .htpasswd et le tour est joué! Par exemple, le chemin absolu du .htpasswd pourrait être quelque chose dans ce genre:
AuthUserFile "/index/www/free-h/theprogrammeur/.htpasswd"
Et voilà, c'en est déjà fini avec le .htaccess! Nous pouvons maintenant passer au .htpasswd.

Le fichier .htpasswd


Ouvrez votre éditeur de texte et créez un nouveau fichier vierge que vous appellerez .htpasswd (n'oubliez pas le point) si votre système n'acepte pas les noms de fichiers commençant par des points, appellez-le htpasswd.txt.
C'est dans ce fichier, vous allez mettre la liste des utilisateurs qui auront accès à votre répertoire d'administration. Un utilisateur s'indique sous cette forme:

login: mot_de_passe_crypte

C'est tout ce qu'il contiendra.

Mais comment je crypte un mot de passe, moi?

Avec la fonction crypt() du PHP, tout simplement. Mais comme je suis dans un de mes bons jours, je vous donne le code d'un formulaire pour crypter vos mots de passe.

<?
if (isset($_POST['login']) AND isset($_POST['pass']))
{
$login = $_POST['login'];
$pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe
echo 'Ligne à copier dans le .htpasswd :<br /&gt'.$login.':'.$pass_crypte;
}
else // On n'a pas encore rempli le formulaire
{
?>
</p>
<p>Entrez votre login et votre mot de passe pour le crypter.</p>
<form method="post">
<p>
Login : <input type="text" name="login"><br />
Mot de passe : <input type="text" name="pass"><br /><br />
<input type="submit" value="Crypter !">
</p>
</form>
<?
}
?>

Ce script est très simple; tout d'abord, grâce à un if, on texte si la variable crypte existe. Si c'est le cas, on vient de remplir le formulaire et on peut crypter. Par contre, si la variable n'existe pas, on affiche le formulaire pour crypter le mot de passe.

Votre fichier .htpasswd deviendra alors quelque chose qui ressemble à ceci:

theprogrammeur:$1$EgClKjcj$fit3uvJTS3NjXkLfpJGfh/
roth:$1$fVoz1dQ3$hTYvb0B3P44yCkj9QuPUW
arthur:$1$8rqhO4gK$qYwnT0vbrsN.Rph9e8L76

Maintenant que vous les avez créés, envoyez vos fichiers sur Internet. Une fois qu'ils sont envoyés, essayez d'accéder à une page dans le répertoire, vous verrez alors quelque chose ressemblant à ceci s'afficher:
htpasswd
Si ça ne fonctionne pas ou si vous avez une erreur 500 (erreur interne au serveur), vérifiez que votre hébergeur accepte les fichiers .htaccess. Si oui, c'est que vous avez fait une erreur. Revenez au début de ce cours.

: -si vos fichiers s'appelaient htaccess.txt et htpasswd.txt, une fois qu'ils sont sur le serveur, renomez-les en .htaccess et .htpasswd (F2) depuis votre logiciel FTP.
-si vous êtes hébergés chez Free, vous ne devez pas crypter votre mot de passe.

Votre zone d'administration est maintenant protégée efficacement.

Haut de la page


Page d'erreur personalisée


Les fichiers .htaccess vous permettent aussi de créer une page d'erreurs personalisée qui sera toujours plus intéressante que la page d'erreurs que vous affiche votre browser préféré.
Comme vous le savez sans doute, il y a différentes sortes d'erreurs. Les deux plus courantes sont l'erreur 404 (page introuvable) et l'erreur 500 (erreur interne au serveur). Pour pouvoir afficher votre page d'erreurs personalisée, il suffit de taper une ligne dans le fichier .htaccess:

ErrorDocument code fichier
      OU
ErrorDocument code "Texte"

On peut aussi afficher une phrase à la place d'un fichier mais il vaut mieux mettre un fichier car la page d'erreur sera plus belle et plus complète.
Voici le code des différentes erreurs que vous pourrez trouver:

400 : Echec de l'analyse HTTP
401 : mauvais pseudo/mdp dans le .htaccess
402 : Le client doit reformuler sa demande avec les bonnes données de paiement.
403 : Requête interdite
404 : Page non trouvée
405 : Méthode non autorisée
500 : Erreur interne au serveur ou serveur saturé
501 : Le serveur ne supporte pas le service demandé
502 : Mauvaise passerelle
503 : Service indisponible
504 : Trop de temps à la réponse
505 : Version HTTP non supportée

Voilà, votre page d'erreur personnalisée est connectée. Vous aurez donc dans le .htaccess des lignes ressemblant à ceci:

ErrorDocument 404 erreur_404.php

Dans ce fichier erreur_404.php, n'oubliez pas d'introduire la balise META empèchant aux robots de l'indexer. De plus, je vous conseille de faire un lien vers la précédente page visitée (HTTP_REFERER) ainsi qu'un lien vers un formulaire de contact pour que l'on vous envoie un mail pour vous expliquer d'ou provient l'erreur.

Haut de la page


Redirection automatique


Le fichier .htaccess permet aussi de rediriger automatiquement un visiteur arrivant sur une page qui n'existe plus sur la nouvelle page plutôt que de lui afficher la page d'erreur. C'est aussi meilleur pour les moteurs de recherche qui peuvent indexer la nouvelle page, supprimer l'ancienne de leur index et déplacer le PageRank (classement) de l'ancienne page à la nouvelle.

Il y a trois types de redirection:
  • la redirection d'une page
  • la redirection d'un dossier
  • la redirection du site

La redirection d'une page

Pour rediriger un visiteur d'une page à une autre, il suffit d'insérer le code suivant dans le .htaccess:

RedirectPermanent ancien.php http://www.moi.be/new.php

Tout visiteur qui arrive sur la page ancien.php sera automatiquement redirigé vers http://www.moi.be/new.php.


La redirection d'un dossier

Pour rediriger tout un dossier, voici le code qu'il faut taper dans le .htaccess:

RedirectPermanent /ancien http://www.moi.be/new/

C'est aussi simple que cela!!!


La redirection du site

Si vous avez changé d'hébergeur, tapez seulement cette ligne dans le fichier .htaccess de votre ancien site:

RedirectPermanent / http://www.moi.be/

Chaque personne qui viendra sur votre ancien site sera automatiquement redirigé vers votre nouvelle adresse!

Et voilà, vous êtes maintenant incollables sur tout ce qui concerne les fichiers .htaccess.

: il n'y a que les moteurs de recherche qui changeront votre lien dans leur index; Vous devrez donc aller réinscrire votre nouvelle adresse dans tous les annuaires.


Creative Commons License
Sauf mention contraire, le contenu de cette page est sous licence Creative Commons
Page générée en 0.3597 secondes.
Retour en haut de la page
Imprimer cette page