Htaccess et réécriture d'url (ou URLRewriting)
Le htaccess
Le fichier .htaccess est un fichier de configuration pour le serveur et sert a définir des règles pour son répertoire et tous les sous dossiers.
il permet de faire une multitude de choses, dont réécrire des urls, rediriger des sous domaines, gérér les messages d'erreurs personnalisés ou encore restreindre l'accès a certains dossiers.
Tout d'abord, activer la réécriture d'url avec la ligne suivante :
RewriteEngine on
La redirection de sous domaine
Deux conditions sont essentielles, afin d'éviter le duplicate content sur son site, qui par défaut est présent sur toutes les pages.
Par exemple, www.magicprog.fr et magicprog.fr sont un cas de contenu dupliqué, il est donc nécessaire d'empêcher ça !
La ligne suivante permet de rediriger magicprog.fr vers www.magicprog.fr
RewriteCond %{HTTP_HOST} !^www. [NC]
La réécriture d'url
En premier lieu, il faut spécifier la manière de réécrire les urls. Ici, on spécifie que la redirection est de type 301 (redirection permanente).
On dit également qu'il n'y aura pas de / à ajouter en fin d'url.
RewriteRule .? http://www.magicprog.fr%{REQUEST_URI} [R=301,L]
Puis on réécrit les url que l'on souhaite changer, par exemple, pour réécrire index.php?mapage=article en article.php, on utilisera :
RewriteRule ^article.php$ index.php?mapage=article
Pour les paramètres de type GET, on peut également les écrire comme on le souhaite par exemple pour index.php?mapage=article&monarticle=abc, on pourra écrire article-abc.php
RewriteRule ^article-(.*).php$ index.php?mapage=article&monarticle=$1
La gestion des erreurs HTTP
On peut gérer les pages d'erreurs, comme 404 Not Found ou encore 404 Bad Request afin d'avoir des pages personnalisées.
Pour cela, une syntaxe simple : "ErrorDocument" suivi du numéro de l'erreur, puis de la page sur laquelle on devra rediriger la personne.
Par exemple, pour les erreurs les plus souvent rencontrées :
ErrorDocument 400 http://www.magicprog.fr/erreur400.html
ErrorDocument 401 http://www.magicprog.fr/erreur401.html
ErrorDocument 403 http://www.magicprog.fr/erreur403.html
ErrorDocument 404 http://www.magicprog.fr/erreur404.html
ErrorDocument 500 http://www.magicprog.fr/erreur500.html
ErrorDocument 401 http://www.magicprog.fr/erreur401.html
ErrorDocument 403 http://www.magicprog.fr/erreur403.html
ErrorDocument 404 http://www.magicprog.fr/erreur404.html
ErrorDocument 500 http://www.magicprog.fr/erreur500.html
Bloquer le listing
Pour éviter l'affichage de la liste lorsque l'on va sur une url du style http://www.magicprog.fr/images, on peut simplement ajouter une option dans le fichier htaccess :
Options -Indexes
Il existe de nombreuses autre instructions utilisables dans le fichier .htaccess, mais je ne les aborderais pas dans cet article.