URL rewriting

Pour faciliter la navigation sur votre sites des internautes, une lecture d’un url est faciliter par lamise en place de l’Url-Rewriting. Celle-ci se mets en place facilement encore faut-il y penser dès le début de votre site internet sinon, une charge de travail importante sera à prévoir en fonction du nombre de page de votre site.

L’URL rewriting ou la réécriture d’url n’est pas particulièrement compliquée (malgré ce qu’on peu lire sur différents tutos, le principe et même relativement simple. Avec une ou des règles, on peut rendre une url (souvent complexe dans le cas d’un site dynamique) en url très simple.
Url avant l’utilisation de la réécriture :

http://mon_site.fre/choix.php?page=News&categorie=Sport&article=le_sacre_de_JPP

Url après l’utilisation de la réécriture :

http://mon_site.fre/News/Sport/le_sacre_de_JPP.html

La seconde url est tout de même plus simple à lire et à se souvenir.

Pourquoi faire de l’ul rewriting ou de la réécriture d’url

Mais pour quelles raisons le faire :

  • Protéger son site, cela ne reste qu’une légère protection, dans le premier cas, on voit que c’est une page générée par du php, dans la seconde, on voit une succession de dossier et une page html.
  • Simplifier la navigation des internautes
  • Faciliter la redirection de votre site
  • Améliorer le référencement, en effet, les moteurs de recherches ne sont pas fan des url avec caractère spéciaux et plus de deux paramètres

Comment faire de l’ul rewriting ou de la réécriture d’url

Plusieurs méthodes sont envisageables :

  1. dans un fichier .htaccess, malgré ce que l’on peut trouver sur le net, cette méthode est à garder seulement si vous n’avez pas accès au fichier de configuration d’apache2, souvent le cas dans un serveur mutualisé, il faudra alors vérifier si le mod_rewrite est activer.
    1. Commencer par créer un fichier se nommant .htaccess dans la racine de votre site, y écrire
      [CODE]

      RewriteEngine on 
      RewriteRule ^test\.html$ /test.php [ L]
    2. Créer une page test.php dans la racine de votre site, y insciren Ceci est ma page php
    3. Dans votre navigateur, taper l’url de votre site http://mon_site.fre/test.html
    4. Vous devriez voir apparaître le contenu de test php mais l’adresse dans la barre est en .html.<br /> Si c’est le cas, tout marche pour vous, sinon il faut contacter l’administrateur du serveur.
  2. dans la configuration d’apache (/etc/apache2/sites-availables/mon_site.conf), possible lorsque vous avez votre propre serveur dédié. L’avantage est que vous pouvez placer dans un seul fichier toutes la configuration de votre serveur. Pour savoir si le mod_rewrite est activé, listez le contenu de /etc/apache2/mods-enabled, mod_revrite doit apparaître, sinon il suffit de l’activer :en2mod rewrite  et redémarrer le service :sudo /etc/init.d/apache2 restart
    La rédaction des règles s’effectue de la même manière dans les deux cas.

Écriture de la règle d’url rewriting</h2>

Si l’on prend le précèdent exemple :

RewriteEngine on
RewriteRule ^test\.html$ /test.php [ L]
  • RewriteEngine on, pour mettre en route le module de réécriture
  • RewriteRule, pour spécifier que ce qui suit est une règle
  • ^ et [ L], indique le début et la fin, le signe « $ », la fin de la première chaine
  • La première chaîne est celle qui sera tapée dans la barre d’adresse
  • La seconde chaîne est celle qui sera affiché à l’écran

Bon, maintenant c’est simple j’arrive à rediriger une page sans paramètre et après ?

Les expressions régulières ou REGEX

Nous allons tout simplement insérer des REGEX et de la capture pour créer une première chaine et seconde chaine dynamique. Je reprends mon exemple :

http://mon_site.fre/choix.php?page=News&categorie=Sport&article=le_sacre_de_JPP

Pour le transformer comme ça:

http://mon_site.fre/News/Sport/le_sacre_de_JPP.html

Ma règle sera donc ça :

RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+).html$ /choix.php?page=$1&Caégorie=$2&article=$3.php [ L]

Je ne rentre pas dans les détails de la REGEX, ce sera le sujet d’un autre article.

Voilà comment réaliser de l’url rewriting.

Laisser un commentaire