Le référencement pour les nuls
Accueil du siteRéférencementGlossaire
Brèves
Jamais de pause pour Zepose
dimanche 10 février
A peine remise du concours Zobibi, notre helvète de service, Zepo, se lance dans un nouveau défi : celui de la rédaction SEO surréaliste. Plus d’information sur son blog artistique et littéraire.
 
Mise à jour du Page Rank
vendredi 11 janvier

Depuis ce matin, ça danse sur les Data Centers de Google. La première mise à jour du Page Rank de l’année 2008 semble bien être en cours.

Et je gage que mêmes ceux qui clament haut et fort que "le PR, ça ne sert à rien" sont comme les autres en train de surveiller l’évolution de la petite barre verte sur leurs sites.

 
Sur le Web
Le Blog de Syp
syp, les billets de son kriblog : en voila un blog qu’il est vachement calé, et qui vous apportera toutes les réponses aux questions que vous ne vous posez pas....
Formation référencement web (1/ ?) Modes d'intervention en communication web / SEO LES COMPLICATIONS DE LA…. MONTRE ! Cycle de développement d’un produit web Luxe, quand tu nous tiens !
Le blog d’Abondance
Un incontournable, pour tout webmaster s’intéressant au référencement et au marketing internet. Quelques réflexions sur les moteurs de recherche et le référencement, infos sur le référencement à destination des webmasters, études, enquêtes sur les moteurs de recherche.
Google Trifecta, séminaire de présentation de produits Google Non, l'annuaire Yahoo! existe encore en France Formation de référenceur à Mulhouse : plus d'infos Etude > Google domine aussi le marché du mobile selon Nielsen MadSpam : un projet de lutte contre le spamdexing

URL Rewriting pour les nuls

mercredi 16 janvier 2008
par LOKI
popularité : 1%

Contrairement aux sites dits "statiques" dont les adresses (URL) ont toujours un aspect bien propre du genre http://mon.site.com/accueil.html, les sites dynamiques, notamment les CMS et les blogs, les forum ou les annuaires basés sur des scripts PHP présentent généralement des URL très exotiques du genre http://mon.site.com/viewtopic.php ?topic_id=585&forum=1 qui peuvent laisser perplexe le visiteur autant que les robots d’indexation d’un moteur de recherche.

Quand les sites dynamiques ont fait leur apparition, les moteurs de recherches étaient tout à fait incapables de les indexer correctement, et bien souvent, seule la page d’accueil était présente dans l’index, le reste du site restant inconnu des moteurs.

Ce n’est plus vraiment le cas aujourd’hui, et la plupart des moteurs sont maintenant capables d’indexer sans problème une URL dynamique comportant jusqu’à deux paramètres. Mais même aujourd’hui, la plupart des webmasters préfèrent présenter aux visiteurs (et les robots d’ indexations) des URL sous une forme plus "sexy". En effet, avoir dans la barre de navigation une adresse comme http://mon.site.com/url_rewriting_pour_les_nuls.html, ça a beaucoup plus de geule que l’adresse http://mon.site.com/rubrique.php3 ?id_rubrique=1. (et de plus, ça permet de mettre un ou deux mots clés dans l’adresse de la page, ce qui peut aider à un meilleur positionnement sur les moteurs de recherche, ce qui n’est pas forcément à négliger.)

C’est l’action de modifier les adresses dynamiques d’origine pour les présenter sous la forme d’adresses statiques qu’on appelle URL rewriting.

En fonction du langage de script et du type de serveur web utilisé, les solutions techniques pour "maquiller" les adresses dynamiques seront très différentes. Je me bornerai dans cette article à ne parler que de ce que je connais, c’est à dire le langage de script PHP et le serveur Apache (ce qui représente quand même la majorité des sites internet).

Pour les serveurs Apache, les solutions seront également différentes selon que le mod_rewrite est installé ou non, ou que votre hébergeur accepte ou non l’utilisation du fichier .htaccess.

Cas le plus simple...et le plus fréquent : le mod_rewrite est installé et vous avez pouvez utiliser le fichier .htaccess pour donner des directives au serveur.

Tout d’abord, pour que ce soit bien clair : ce n’est pas le fichier .htaccess qui réécrit vos URL dynamiques en URL "propres". C’est votre script PHP qui doit le faire.

Voici un exemple de ré-écriture d’URL tiré de Rewrite YourPHPAnnuaire mais il existe des milliers d’autres manières de ré-écrire des URL.

Génération de l’URL d’une sous-catégorie de l’annuaire par le script index.php :


<a href="<?php echo id_to_url($une_souscat["id"],$une_souscat["cat_name"],'1'); ?>" class="link_scat_index_annuaire"><?php echo htmlspecialchars($une_souscat["cat_name"]); ?></a>

La génération de l’URL fait appel à la fonction id_to_url décrite ci-dessous :


function id_to_url ($id,$cat,$page,$type='')
{
        global $T_infos, $PMA_infos;
       
        // Déterminer s'il faut faire de l'URL Rewritting
        if ( $PMA_infos['url_rewritting'] )
        {
                list( $suffixe, $caracteres, $car_speciaux, $car_normaux ) = id_to_url_info();
               
                // Supprime les accents, supprime les caractères non-alphanumériques, convertit en minuscules, remplace les tirets multiples par un tiret unique, supprime le dernier caractère si c'est un tiret, et limite la chaine aux $caractères premiers caractères
                $url = substr( eregi_replace( "\-$", '', eregi_replace( "\-+", '-', strtolower( eregi_replace( "[^A-Za-z0-9]", '-', str_replace($car_speciaux, $car_normaux, $cat) ) ) ) ), 0, $caracteres );
                // Applique le suffixe à l'url
                $url = $type=='keyw' ? "$url-k$page-$id$suffixe" : "$url-p$page-$id$suffixe";
               
                return $url;
        }
        else
        {
                if ( $type=='keyw' ) {
                        return "search.php?action=seek&mots=id$id&nb_results2show=20&booleen=AND";
                } else {
                        return $page==1 ? "index.php?cat_id=$id" : "index.php?cat_id=$id&page=$page";
                };
        };
}

Je vous passe l’explication détaillée de toutes les instructions PHP, mais en clair, ce que fait la fonction id_to_url quand elle reçoit les paramètres $id=74, cat=annuaires généralistes et page = 2, c’est vérifier si j’ai activé ou non l’URL Rewriting dans les paramètres de mon annuaire :

Si j’ai choisi d’utiliser l’URL Rewriting, après quelques manipulations, la fonction me renvoie l’URL sous la forme :

http://mon.annuaire.com/annuaires-generalistes-p2-74.html

sinon, elle me la renvoie sous la forme dynamique, la seule qui soit directement interprétable par mon serveur :

http://mon.annuaire.com/index.php ?cat_id=74&page=2

Maintenant que se passe-t-il quand un visiteur clique sur mon URL relookée : la page annuaires-generalistes-p2-74.html n’existe pas sur mon serveur, et celui-ci doit me renvoyer une erreur HTTP 404.

Mais comme je suis un petit futé, j’ai pris soin de mettre en place un fichier .htaccess qui contient les directives suivantes :


RewriteEngine on

RewriteRule -p([0-9]*)-([0-9]+)\.html$  /index.php?cat_id=$2&page=$1 [L]

La première directive (RewriteEngine on) indique qu’on va utiliser le module rewrite (mod_rewrite) d’Apache.

La directive suivante indique au serveur Apache comment traiter l’URL, c’est à dire comment décortiquer la chaine de caractères fournie et les manipuler pour les transformer en une URL correspondant à une page existante :

Dans la chaine http://mon.annuaire.com/annuaires-generalistes-p2-74.html, tu prends la première série de chiffres que tu rencontres et tu alimentes le paramètre $1, puis tu alimentes le paramètre $2 avec la deuxième série de chiffres, ensuite tu iras chercher la page index.php avec les paramètres adéquates.

Comme on le voit, c’est bien le code PHP qui détermine de quelle manière mes URL seront présentées au visiteur (ou au robot) et le fichier .htaccess n’est là que pour retraduire en sens inverse l’adresse relookée en une adresse interprétable par le serveur.

 

Répondre à cet article
Articles de cette rubrique
  1. Le PageRank
    4 janvier 2008

  2. Le PageRank négatif....
    4 janvier 2008

  3. Le TrustRank
    4 janvier 2008

  4. URL Rewriting pour les nuls
    16 janvier 2008

  5. L’algorithme Hilltop : un Page Rank thématique ?
    13 février 2008