24-08-2008

Réécriture des URL dynamiques en URL sémantiques - partie 2

La réécriture des URL n’est malheureusement pas une opération atomique.

Si celle-ci est dictée à Apache au moyen de l’un de ses fichiers de configuration, les liens émanant des autres pages vers un lien modifié ne sont pas automatiquement réécris.

Voici donc les trois étapes nécessaires à la réécriture d’url dynamiques en url sémantiques :

Configuration serveur : ajout et activation de mod_rewrite

Premièrement on vérifie que le module mod_rewrite est bien installé. De nos jours, ce module est souvent installé par défaut. Il suffit de vérifier qu’il est bien installé sur le serveur linux et chargé par le serveur web.

Premièrement, on peut vérifier la présence physique du module sur le serveur Linux :

> ls /usr/lib/apache2/modules

mod_rewrite.so

Ensuite, on s’assure que Apache charge ce module lors de son exécution

> ls /etc/apache2/apache2.conf

Include /etc/apache2/mods-enabled/*.load

> cat /etc/apache2/mods-available/rewrite.load

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

> ls -l /etc/apache2/mods-enabled/rewrite.load

rewrite.load -> /etc/apache2/mods-available/rewrite.load

Pour activer ou désactiver le rewrite pour un site particulier il faut utiliser l’instruction RewriteEngine On/Off

> cat /etc/apache2/sites-available/ www_mon-portail-touristique_com

RewriteEngine On

Bien sur, la configuration du site prend effet seulement si elle connectée par la liste des sites actif

> ls -l /etc/apache2/sites-enabled/www_mon-portail-touristique_com

www_mon-portail-touristique_com

->/etc/apache2/sites-available/www_mon-portail-touristique_com

Note: dans l’ancienne version d’Apache, il était une pratique courante de ne pas utiliser les includes et de lister toutes les directives dans httpd.conf qui était le seul fichier de configurations plutot que d’utiliser les fichiers de sites-available/ et de mods-available/

Règles de réécritures édictées pour chaque site

  • Fichiers de réécriture : le fichier de configuration principal ou le fichier local

Il est possible d’édicter des règles de mod_rewrite directement dans le fichier de configuration du site, soit dans le répertoire de configuration de Apache, là ou il était indiqué que nous activions à On le RewriteEngine.

Il est aussi possible d’édicter les règles directement dans les répertoires du site web avec les fichiers locaux de configuraiton .htaccess

  • Langage de la réécriture : les expressions régulières

On veut transformer une url dynamique :

http://www.mon-portail-touristique.com

/portailregional.jsp?region=4&nom=Quebec

en url sémantique :

http://www.mon-portail-touristique.com/portail-regional/Quebec/

RewriteEngine On

RewriteRule ^portail-regional/([0-9]+)/ ([^_]+) \.html$ portailregional.jsp?region=$1&nom=$2

Après avoir effectué les ajustements à la configuration, il faut redémarrer Apache :

sudo apache2ctl graceful

  • Modes ou modificateurs de réécriture

Il existe différents modes d’applications des règles de réécriture.

Par exemple, le drapeau [R] placé après une règle de réécriture provoque le rechargement de l’url par le navigateur.

Synchronisation des hyperliens

Si le site est dynamique, comme le sont les url paramétrisées, il faudra affecter les url générées par l’application web.

La manière la plus élégante de procéder est de travailler systématiquement. Pour chaque règle énoncée dans le fichier de configuration de Apache, il faut créer une règle de transformation dans le code dynamique de l’application web.

Par exemple, dans le site de portail touristique, il faudrait que toutes les listes de liens vers les portails régionaux voient leurs url des hyperliens ajustées à la nouvelle nomenclature.

Ainsi, avant nous faisions une boucle qui ressemblait à ceci :

&nom=<%=nom %>”><=%nom %>

Maintenant, il faut ajuster ce code et écrire :

/<=%nom %>.html”><=%nom %>

Architecture favorable de l’application web

C’est pourquoi il est important d’architecturer l’application en centralisant autant que possible l’écriture des liens vers les autres pages: donc les menus, les fils d’ariane et les listes de sous-pages sont centralisés.

L’architecture sera d’autant plus cohésive si les fichiers .htaccess sont hiérarchisés de la même manière que les générateurs d’url.

Posté par Nadine St-Amand pour Les formations Accent Net dans Référencement, Sémantique | RSS 2.0

Les commentaires sont fermés.