Le vocabulaire des expressions régulières est assez étendu, je ne vais pas vous en faire une liste exhaustive ici. Voilà tout de même la liste des symboles utilisés pour la suite
^ début de ligne
$ fin de ligne
[] classe de caractères
() parenthèses capturantes
+ au moins un
$1, $2, … On réécrit une portion capturée précédemment.
Il y en a bien évidemment plus, mais voilà ceux que vous utiliserez le plus pour les expressions régulières.
Le vif du sujet, L’URL Rewriting
Pour la suite, nous allons avoir besoin d’un serveur apache avec mod_rewrite d’installé. Si vous avez un mutualisé, c’est normalement le cas. Si vous travaillez avec Wamp, pensez à activer mod_rewrite.
Placez-vous dans le dossier racine de votre site, et ouvrez (ou créez) le fichier .htaccess.
La première chose à faire est d’activer mod rewrite. pour cela, écrivez RewriteEngine On. Toutes vos réécritures devront se placer en DESSOUS de cette ligne.
La syntaxe permettant de créer une réécriture est très simple : RewriteRule pattern nouvelle_url [options].
Voilà quelques exemples :
RewriteRule ^ma_page$ mon_fichier.php [L]
Cet exemple relie une uri de notre choix (ma_page) à un fichier.
Le flag [L] signifie que l’on stop ici la lecture des règes de redirections.
RewriteRule ^blog/(.*)$ articles/$1 [R=301]
Pour cet exemple, il faut imaginer une nouvelle version de site, ou la partie blog change d’URLs à cause d’un nouveau CMS. Nous effectuons donc une redirection de nos anciennes adresses (/blog/mon-titre) vers les nouvelles (/articles/mon-titre).
Il faut noter le $1, qui réinsert le titre de l’article, et le Flag [R=301], qui indique à Google que c’est une redirection de type 301, donc permanente.
RewriteRule ^/articles/([a-z0-9]+)/([0-9]+)$ articles.php?title=$1&id=$2 [L]
Pour ce dernier exemple, le but est de donner un permalien à des articles, qui ne sont pas réellement des fichiers, mais des données mySQL (par exemple). Nous découpons donc nos belles URL pro-SEO en un format compréhensible par php, avec des variables $_GET .