Vous disposez de PHP, d'un serveur Apache, vous aimeriez aller un peu plus loin avec votre site web ?
Découvrez les fichiers .htaccess. Il s'agit de petits fichiers de configuration qui vont vous permettre de personnaliser le comportement de "votre" serveur. Ils se révéleront très utiles si vous n'avez pas accès au fichier de configuration principal.
A quoi servent-ils plus précisément ? À une foultitude de choses ! Vous pouvez personnaliser les pages d'erreurs (fini l'horrible 404 !), changer la page d'accueil, protéger un répertoire, et surtout, pratiquer l'URL rewriting, ce qui vous permettra de masquer vos URL telles que
Sans tarder, commençons !
Si vous êtes sous Linux, pas de problèmes ! Il vous suffit de créer un fichier .htaccess dans le répertoire correspondant de votre FTP.
Si vous êtes sous Windows, c'est plus complexe : par défaut, Windows n'accepte pas les fichiers qui commencent par un point. Vous pouvez contourner le problème en entourant le nom par des guillemets au moment de l'enregistrement: "".
Deuxième solution : nommer le fichier htaccess, puis l'uploader sur le serveur, et le renommer en .htaccess.
Les .htaccess sont disposés en bubbling : c'est à dire que si vous mettez un fichier htaccess à l'index de votre site, tous les sous-dossiers seront affectés. Ainsi, de sous-dossiers en sous-dossiers, les fonctions vont s'ajouter.
En temps normal, lorsque l'on demande un dossier, Apache recherche un fichier index.htm, puis index.html, puis index.php....
Vous pouvez changer ce comportement en utilisant la directive DirectoryIndex :
Par défaut, Apache sert une page d'erreur sobre lorsqu'il ne trouve pas le document. Vous pouvez changer l'URL de la page d'erreur : c'est le but de la fonction ErrorDocument :
Le premier paramètre est le numéro de l'erreur à récupérer1, le second paramètre est la page vers laquelle il faut renvoyer.
Attention ! Vous devez marquer l'URL de la page en notation relative. Si vous la marquez en notation absolue (e.g. http://neamar.fr/Erreur-404.htm), la redirection s'effectuera bien, mais les headers envoyés seront avec un code d'erreur 200. Long story short, cela signifie que les moteurs de recherche, tels Google, ne seront pas capable de dire si une page est valide ou pas.
Vous pourriez aussi expérimenter certains problèmes avec des outils pour webmasters, qui cherchent à savoir si vous êtes le vrai webmaster d'un domaine en vous demandant d'uploader une page spéciale. Le logiciel n'aurait alors aucun moyen de dire si la page existe bien ou pas !
Vous avez adoré dynamiser vos page HTML avec PHP ?
A priori, vous ne pourrez pas faire de même dans un fichier CSS, JavaScript, ou autre. Mais cela pourrait tout de même être utile : par exemple, si on voulait que le visiteur puisse choisir sa couleur d'affichage dans une palette graphique complète.
Pas de problème ! Une nouvelle fois, le .htaccess va vous sauver la mise via l'instruction AddType :
Plusieurs hébergeurs proposent par défaut la version 4 de PHP. Mais mieux vaut passer à la version 5 : elle est plus stable, plus performante, plus sécurisée, et admet quelques nouvelles fonctions.
Selon votre hébergeur, vous pouvez passer à la version 5 de PHP ! Il vous suffit d'incorporer les lignes suivantes :
Ces lignes dépendent des hébergeurs. Renseignez-vous plour plus d'informations !
L'URL rewriting est sûrement la fonction la plus utile des fichiers .htaccess. C'est malheureusement aussi une des plus complexes à maitriser !
Voyons d'abord quelle en est l'utilité : vous allez pouvoir simplifier vos URL et les clarifier pour vos visiteurs et les moteurs de recherche.
Ainsi, l'URL suivante :
va devenir
Pour maitriser l'URL rewriting, des connaissances de base avec les RegExp sont nécessaires. Je ne peux malheureusement pas en faire un cours ici, ce serait bien trop long...Je vous mets donc juste un lien vers un tutorial très complet2. Voilà juste la base, qui vous permettra de comprendre les exemples fournis :
Par exemple : la RegExp [a-z]+ renverra :
Voilà qui devrait suffire pour élaborer vos première regexp !
Examinons notre exemple :
va devenir
Cherchons une RegExp qui corresponde à l'URL réécrite quels que soient les paramètres fournis :
Vérifions la validité de notre choix : un âge est forcément constitué d'un ou plusieurs chiffres : donc [1-9]+
Une nationalité est constituée de lettre minuscules et majuscules (pour l'instant, on négligera les pays composés !)
Un pseudo peut être constitué d'à peu près n'importe quoi : on utilise donc le point.
Il va maintenant falloir placer les parenthèses capturantes : elles détermineront quelles parties doivent être renvoyées dans l'URL de destination. Nous, nous cherchons à récupérer trois paramètres :
Maintenant la ligne miracle :
Quelques explications s'imposent...
Notre RegExp est maintenant entourée de ^et $. Si vous ne comprenez pas pourquoi, relisez le tutorial...cela signifie que l'URL doit commencer par Fiche et finir par la nationalité.
Le contenu des parenthèses est réinjecté dans la deuxième partie de la ligne : ce sont les $1, $2 et $3 qui contiennent respectivement le contenu des parenthèses 1, 2 et 3.
Le [L] indique que le moteur d'URL rewriting doit arrêter sa recherche ici si l'URL correspond à l'expression régulière. Cela vous sera utile quand vous aurez plusieurs lignes d'URL Rewriting.
Si vous avez marqué ce code dans votre .htaccess, vous risquez d'avoir une mauvaise surprise...c'est par ce que cette simple ligne ne suffit pas. Je ne vous fais pas languir plus longtemps, voilà le total :
Je pense que je n'ai pas besoin d'en dire beucoup plus, les commentaires sont éloquents !
Profitez bien de ce module, il s'avère extrêmement utile !
Si après avoir uploadé votre fichier .htaccess, vous obtenez une erreur 500 (Internal Server Error), pas de chance ! Votre serveur n'est pas compatible avec les .htaccess. Si vous êtes sur un hébergement mutualisé, il est fort probable que votre hébergeur ait interdit l'utilisation de ces fichiers. Vous allez devoir supprimer le fichier .htaccess, dommage...vous devrez faire sans !
Si vous obtenez une erreur 500 en utilisant l'URL rewriting, deux possibilités :
Références :
Chargement du sommaire...