Archive pour la catégorie 'Référencement'
08-24-2008
Réécriture des URL dynamiques en URL sémantiques - partie 3
Cette partie parlera du cas pratique ou les URL dynamiques sont activées dans une application existante et bien connue : WordPress.
WordPress illustre bien cette double action qui doit être menée afin de faire fonctionner la réécriture des URL.
D’une part, les url générée par le CMS sont générées selon le patron préféré tel que spécifié dans la page de configuration.
Panneau d’administration
Premièrement, l’administrateur sélectionne la section nommée ‘Permalinks’

Génération des hyperliens par l’application web
Ensuite, il choisit une des formes d’URL pré-fabriquée ou en compose une lui-même en utilisant la syntaxe permettant de spécifier la position pour la date, le titre, la catégorie, l’identifiant ou encore l’auteur du message. C’est donc de cette façon qu’on conçoit l’hiérarchie apparente du site.
La liste des variables disponible pour la création de la syntaxe sémantique est disponible sur le site officiel :
http://codex.wordpress.org/Using_Permalinks#Choosing_your_permalink_structure

Réécriture des URL par le serveur web Apache
Cette indication de syntaxe permet à l’engin PHP de générer les hyperlien correspondant au rewrite mais cependant, ce n’est pas la partie qui effectue la réécriture proprement dite afin de fournir à l’engin PHP les pages paramétrisée qu’il doit travailler à partir pourtant de requête vers des pages statiques HTML.
Ces indications sont faites avec le fichier .htaccess qui peut être généré automatiquement par WordPress si le répertoire et/ou le fichiers sont accessibles en écriture.
Ensuite, l’engin réécrit, s’il en a les droits, le fichier .htaccess afin de signifier cette nouvelle configuration des URL
# BEGIN WordPress
RewriteEngine On
RewriteBase /portail-regional/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /portail-regional/index.php
# END WordPress
Ici, la réécriture spécifie qu’elle ne doit s’accomplir que SI et seulement SI le fichier ou le répertoire demandés n’existent pas physiquement dans l’hébergement.
L’écriture des règles au niveau des fichiers locaux .htaccess ne nécessite pas le redémarrage d’Apache comme les règles indiquées dans le fichier de configuration central.
Cependant, la surcharge doit être permise par la configuration centrale et conséquemment, l’autorisation de fichiers .htaccess ralentissent le service des pages puisque le serveur doit à chaque fois vérifier la configuration locale !
Nadine St-Amand
Formatrice et designer de logiciels
Posté par Nadine St-Amand pour Les formations Accent Net dans Référencement, Sémantique | Pas de commentaires »
08-24-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 :
-
Le serveur web est configuré pour supporter la réécriture d’url par l’ajout et l’activation du module mod_rewrite
-
Le serveur web est informé des réécritures qui auront cours pour chaque site web
-
Le code du site web doit refléter la réécriture en utilisant les nouvelles versions d’url dans les balises d’hyperlien
Configuration serveur : ajout et activation de mod_rewrite
-
Installation du module
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
-
Activation du module
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 :
Maintenant, il faut ajuster ce code et écrire :
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 | Pas de commentaires »
08-24-2008
La réécriture des URL dynamiques en URL sémantiques - partie 1
Dans un site web dynamique reposant sur une base de données, les différentes pages décrivant le même type de données ont toutes la même adresse web. Ce qui permet de les différencier c’est seulement le paramètre, souvent un identifiant numérique, associé à l’URL.
Exemple d’une URL dynamique
Ces pages dynamiques sont celles publiant sur le web les données issues de la base de données, par exemple : la page d’un produit dans un commerce électronique, la page d’un article dans un journal, etc.
Ces pages sont très mal indexées par les moteurs de recherche qui s’intéressent surtout à la sémantique de nos pages. En effet, ceux-ci considèrent les informations suivantes par ordre d’importance :
- Le nom du domaine
- Le nom de la page et de son hiérarchie
- Le titre de la page (balises )
- Le contenu
Ces informations permettent au moteur d’indexation de conserver notre page web dans la bonne catégorie de son index et parfois même de tisser des liens sémantiques entre ces contenus et ceux d’autres sites.
Comment un moteur d’indexation, tel que Google, peut-il voir la différence fondamentale entre notre région numéro 4 et notre région numéro 5 s’il n’y a pas d’autre d’informations les décrivant. D’autre part, comment pourrait-il associer cette donnée avec d’autres informations de sa base si les mots-clés décrivant la région manquent !
C’est pourquoi des informations sémantiques plus pertinentes devraient être associées à l’adresse web. Par exemple, il est préférable de publier le mot-clé principal de la région dans l’URL, même si ce mot-clé n’est pas utilisé dans la requête (dans le script de la région c’est l’identifiant numérique qui est utilisé).
Exemple d’une URL dynamique et sémantique
Ainsi, lorsque les ‘crawlers’ iront visiter notre site, ils verront distinctement la différence entre la région 4 et la région 5 et pourront identifier ce contenu avec des mots-clés.
Cependant, l’algorithme de l’engin d’indexation considèrera sans aucun doute que cette information est de second ordre si elle est placée dans un paramètre. Elle ne vaudra pas plus qu’un autre paramètre tel la langue ou le numéro de session ! Un autre facteur défavorisant l’indexation des pages paramétrées est leur nombre impressionnant et leur pertinence toute relative sur le web d’aujourd’hui. Enfin, considérons également le retard dans le développement des moteurs de recherche qui n’aide pas leur cause : celui par rapport à la capacité de gestion de ces url un peu spéciales.
Quoi qu’il en soit, c’est une vérité communément admise de nos jours qu’il vaut mieux avoir une url dans laquelle la sémantique n’est pas distribuée dans les paramètres, mais dans laquelle plutôt, la sémantique serait concentré dans le chemin de la page et le nom de la page. On tente le plus possible de présenter une adresse de page qui serait sémantique en elle-même : les mots-clés font partie du nom de la page et de ses répertoires. Voici quelques exemples ou les mots-clés sont mis en avant et les identifiants numériques sont filtrés.
Exemple d’une URL sémantique (d’apparence non-dynamique)
Exemple d’une URL sémantique (d’apparence non-dynamique)
Comment s’opère cette magie : soit présenter plusieurs noms de pages statiques par un système dynamique opérant un seul script, i.e. une seule page qui les génèrent toutes ?
C’est la réécriture d’URL, aussi connue par les expressions anglophones ‘url rewriting’ ou ‘mod rewrite’.
Dans le prochain article, nous apprendrons comment réaliser cette magie à l’aide du module mod_rewrite de Apache.
Nadine St-Amand
Formatrice et designer J2EE
Posté par Nadine St-Amand pour Les formations Accent Net dans Référencement, Sémantique | Pas de commentaires »