La réécriture d’URL, lorsqu’elle s’exécute sur une configuration Apache, passe par le fichier .htaccess. Si l’on entend souvent dire qu’il est pertinent de procéder à de la réécriture pour différentes raisons (domaine à rediriger, URLs de pages produits à modifier,…), la syntaxe à écrire n ‘est pas forcément évidente. Aussi je vous propose 3 exemples de réécritures d’URL qui permettront de mieux répondre aux besoins courants de chacun. Ces réécritures sont bien sûr à faire dans le fichier .htaccess.

Redirection d’un domaine sans le www vers un domaine en www : d’un point de utilisateur, cela ne change rien. D’un point de vue moteur, il est important d’indiquer quel est le vrai point d’entrée à crawler. Nous parlons ici de redirection 301 (déjà abordée dans d’anciens posts) :

RewriteEngine On
RewriteCond %{HTTP_HOST} ^monsiteweb\.com$
RewriteRule (.*) http://www.monsiteweb.com/$1 [R=301,L]

Redirection d’une page produit.php?id=15 en 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) :

RewriteEngine on
RewriteRule ^produit-([0-9]+)\.html$ produit.php?id=$1

Redirection d’une page produit.php?id=15 en produit/macbookpro/15.html : dans un souci d’optimisation, on choisira de faire apparaître le mot-clé dans l’url. Plus propre mais aussi plus parlant pour l’internaute, la procédure, pour cet exemple, est la suivante :

RewriteEngine on
RewriteRule ^produit/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ produit.php?id=$2