JDNet | Solutions | Emploi | Votre high-tech
 
Linternaute | Copainsdavant
Séminaires & Evénements | Etudes
   

Rechercher  

 
Sociétés Prestataires Carnet Formations Progiciels Encyclo Fonds Guide d'achat Comparateur Téléchargement Livres
Actualités
   2003
   2002
   2001
   Livres
Rubriques
   Java/J2EE
   PHP
   XML
   Client Web
   Technos .NET
   Flash
   Algo/Méthodes
   Outils

Dossiers
   Tous les dossiers

   PHP, Flash, SVG
   Perl / CGI - SSI
   Langages Web
   Services Web
   Sécurité
Ressources
   Interviews

   Téléchargement
   Composants
   Documentation
Contacts
   Rédaction
   Webmaster
© Benchmark Group


Référencement de sites dynamiques: l'exemple du PHP (Deuxième partie)
Les robots peuvent avoir des difficultés pour suivre des URLs "exotiques". Le module Apache mod_rewrite permet de "réécrire" les URLs pour tenir compte du problème.

Dans notre précédent article, nous avons souligné la nécessité, dans certains cas, et notamment pour améliorer son référencement, de "réécriture" d'URLs "dynamiques". Nous avons présenté une méthode basée sur un petit script PHP qui s'exécutait, dans un répertoire précis, dès que l'URL saisie remplissait certaines conditions.
Le but était qu'une URL de la forme:

http://www.mondomaine.org/forums/messages/4_3_12.html

(URL apparaissant dans la barre d'adresse du navigateur) engendre le même résultat que l'URL:

http://www.mondomaine.org/forums/lire.php?forum=4&thread=3&post=12

Dans la méthode fournie, le script PHP "émulait", en quelque sorte, le comportement résultant de cette deuxième URL.

Mais il existe un deuxième moyen d'aboutir au résultat relativement simplement pour peu que l'on sache utiliser les expressions régulières. Il s'agit de tirer profit du module mod_rewrite du serveur Apache. Très puissant, ce module permet d'envisager tous les systèmes de redirection possibles, mais nous n'allons pas, ici, en faire une présentation exhaustive. Nous allons, simplement, introduire les directives qui vont permettre d'aboutir au même résultat que notre script PHP.

La première chose est de préciser au serveur Apache qu'il aura besoin du module mod_rewrite. Nous écrirons, dans le fichier httpd.conf (fichier de configuration du serveur):

LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

Puis nous allons démarrer notre "moteur de réécriture" (également dans httpd.conf) par:

RewriteEngine On

Il nous reste alors à définir notre "règle de réécriture" (toujours dans httpd.conf). Ce sera la suivante:

RewriteRule ^/forums/messages/([0-9]*)_([0-9]*)_([0-9]*).html                         /forums/lire.php?forum=$1&thread=$2&post=$3


Cette règle repose sur deux expressions régulières. La première définit la forme de l'URL qui est envoyée au serveur, la seconde la forme de l'URL qui sera effectivement traitée. La première URL, et non la deuxième, apparaîtra dans la barre d'adresse du navigateur.
Pour comprendre ces expression régulières, il faut se rappeller le points suivants:

- ^/forums/messages/... : tout "masque" commençant par /forums/messages/;
- [0-9]* : toute combinaison de chiffres (caractères appartenant à l'intervalle [0-9]), le méta-caractère * signifiant un nombre quelconque d'occurences;
- Toute partie d'expression régulière encadrée par des parenthèses est "mémorisée" dans les variables $1 (pour la première paire de parenthèse), $2 (pour la seconde), etc.

En bref, la technique est rapide à mettre en oeuvre (pour que les modifications de configuration d'Apache soient prises en compte, il faut cependant relancer le serveur), mais nécessite de bien maîtriser les expressions régulières, d'une part, et, surtout, d'avoir la main sur la configuration du serveur Apache, d'autre part. Or, cette dernière condition n'est pas remplie dans le cadre d'un hébergement mutualisé, par exemple.

Pour plus d'information sur le potentiel de mod_rewrite, vous pouvez consulter la page suivante.

[Jérôme Morlon, 13 avril 2002 , JDNet]

Gratuit - Les nouveautés de
JDNet Développeurs
Toutes nos newsletters
 

Quel est le meilleur langage pour aborder la programmation ?
Basic (VB & co...)
C/C++
Java/C#
PHP
Pascal/Delphi
Perl
Python
autre...



Les outils de développement dans le Guide des Solutions
e-business

L'encyclopédie JDNet Toutes les notions pratiques, techniques et économiques relatives à l'e-business.
>> Accès à la rubrique "Développement"

Comparez les prix Matériel, PDA, modems...
Les bonnes affaires de la high-tech avec Kelkoo.
>> Comparateur

Société | Contacts | Publicité | Presse | Recrutement | Tous nos sites | Données personelles
Pour tout problème de consultations, écrivez au Webmaster.
© Benchmark Group, 4 rue diderot 92156 Suresnes Cedex