Réécriture d’URL par .htaccess
L’URL rewriting ou réécriture d’URL à la volée est un sujet complexe et de loin l’un des plus important pour un site web.
Son objectif est multiple :
Améliorer le référencement de votre site
Protéger votre technologie
Ssimplifier la navigation de vos utilisateurs
Permettre l’évolution de votre site
Gérer les redirections ... et bien d’autres utilités.
1. Créez un fichier html simple, nommez le « test.html ». 2. Modifiez le fichier .htaccess en y ajoutant les 3 lignes suivantes. Faites très attention à utiliser la syntaxe précise ou mieux, utilisez le copier/coller : 3. Télécharger le fichier .htaccess et le fichier test.html à la racine de votre site web, ou mieux encore dans un répertoire de test créé pour l’occasion. 4. Lancez votre navigateur et entrez l’URL :
Et là, deux solutions se présentent : Il est possible que votre hébergeur ne vous permette pas d’ajouter le "FollowSymLinks" dans les options Apache (résolution des liens symboliques, l’équivalent des raccourcis de Windows).
Vous pouvez supprimer cette ligne sans problème. Je fais un site PHP et que je veux qu’il soit "SEO à donf". Ce que je souhaite : Méthode .htaccess :Commencer par tester si le module mod_rewrite est actif chez votre hébergeur.
http://www.votresite.com/pagefantome.html
Soit votre page test « test.html » s’affiche c’est parfait, le module est activé.
Soit vous avez une erreur 404 ou encore plus probablement une erreur 500 et malheureusement il n’y a pas grand-chose à faire... si ce n’est retirer tout de suite le fichier .htaccess avec le client FTP.
La réécriture proprement dite :
http://www.monsite/1.html doit rediriger vers http://www.monsite/index.php?id=1
http://www.monsite/page/produit-1.html doit rediriger vers http://www.monsite/page/index.php?id=1
Redirection d’une page http://www.votresite.com/produit.php?id=15 en http://www.votresite.com/produit-15.html : Il s’agit là d’une simple redirection pour faire croire au moteur que l’url dynamique est statique, en camouflant le .php et en transformant le ? en élément statique (.html) :
Redirection d’une page http://www.votresite.com/article&id_article=1 en http://www.votresite.comarticle1.html :
Redirection d’une page http://www.votresite.com/rubrique1.php en http://www.votresite.com/rubrique1/ :
Redirection d’une page http://www.votresite.com/produit.php?product_id=7 en http://www.votresite.com/products/7/ :
Redirection d’une page http://www.votresite.com/produit_par_nom.php?product_name=tartiflette_en_conserve en http://www.votresite.com/conserves/tartiflette_en_conserve/ :
([0-9]+) : permet n’importe quel chiffre, et seulement un chiffre, une ou plusieurs fois.
([a-z-]*) : Permet toute lettre minuscule, plus “-” pour la séparation des mots, 0 ou plusieurs fois. Si vous voulez aussi supporter les Majuscules, utilisez “([a-zA-Z-]*)”
[QSA,L] : Le tag QSA permet de transmettre chaque query string au script (autres que id), par exemple le n° de la page s’il y en a plusieurs.
RewriteRule : Ce mot-clé introduit toute règle de réécriture, il est indispensable
^pagefantome.html$ : c’est la première partie de la règle, celle qui détermine la chaîne de caractères que le module devra rechercher pour la réécrire. Elle contient deux caractères spéciaux marquant le début (^) et la fin ($) de la ligne.
test.html : La chaîne par laquelle il faudra remplacer celle trouvée à l’étape précédente. En règle générale, elle correspond au nom d’un fichier existant réellement dans votre espace Web.
[L] : Un flag (drapeau) signifiant que cette règle est la dernière à appliquer dans ce cas ( L = last = dernier ) et que le module ne doit plus rechercher à réécrire cette chaîne.
