PHP / SQL et comment mettre en place des permaliens

Publié le 23 mai 2008 par Dator

De nos jours, le référencement est la clef de la réussite d’un site internet. Mais le référencement est une activité abstraite car les algorithmes de moteurs de recherches comme Google ou encore Yahoo sont encore inconnus.

Néanmoins il est prouver et cela est logique que l’adresse (URL) d’une page est très importante lors du référencement de son site internet.

En effet, les adresses du type http://www.monsite.com/?id=12 n’est pas aussi optimisé qu’une adresse de ce type : http://www.monsite.com/?article=le-titre-de-mon-article .

Nous allons voir dans ce billet, comment éviter d’utiliser un id pour identifier un champ dans une table SQL et comment mettre en place ce que l’on appelle les liens permanent.

C’est quoi un lien permanent

Un lien permanent (ou permalink) est une chaine de caractère unique permettant d’identifier un objet dans une table SQL ou autre source de données.

Ce lien permanent a le devoir d’être unique pour ne pas avoir de problèmes (2 articles ayant le même titre par exemple).

Mise en place

  1. La base de donnée

  2. Nous allons dans un premier temps créer la base de donnée qui sera donc identifier par un id, et par un lien permanent.

    Nous conserverons l’id pour des raisons de maintenance ou encore d’optimisation future de votre application.

    CREATE TABLE `articles` (
      `article_id` bigint(20) NOT NULL auto_increment,
      `titre` varchar(255) NOT NULL,
      `permalink` varchar(255) NOT NULL,
      `contenu` text  NOT NULL,
      PRIMARY KEY  (`article_id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    

    Cette table a une structure très simple. Elle représente la table des articles avec un titre, un contenu,
    un id et un lien permanent; tout ce qu’il y a de plus basique.

  3. Convention des liens permanents

  4. Généralement, les permaliens ne comportent aucun espace, aucun caractère accentué, aucun caractère spécial et doit comporter des lettres en minuscules, des chiffres et (très important) il doit être unique; vous pouvez rajouter un 1 ou un 2 afin de ne pas avoir le même à chaque fois

  5. Mise en place du code

  6. Maintenant il faut que nous identifions (grâce à cette url : http://monsite.com/?article=le-permalink), quel article nous devant charger dans notre page.

    Pour cela nous avons besoin de la puissance de PHP.

    article.php

    $link = mysql_connect('localhost','root',''); // On se connecte à la base sql
    mysql_select_db('mabase');
    // on enleve les caractère html (sécurité)
    $permalink = htmlentities($_GET['article']); 
    
    // On fait notre requête sql
    $query = "SELECT * FROM articles WHERE permalink LIKE '".$permalink."'";
    $res = mysql_query($query);
    $article = mysql_fetch_array($res);
    // on affiche le résultat
    print_r($article);
    

    Dans ce petit bout de code, on peut voir que l’on a utilisé l’opérateur SQL LIKE . Cet opérateur nous permet de comparer, ici, permalink et la valeur passée en paramètre. Celle-ci doit être identique à un permalink contenu dans la table SQL.

Avec ce code la, vous pouvez architecturer vos applications afin de les optimisés pour le référencement et ainsi pouvoir voir apparaitre vos pages sur les moteurs de recherche.

Nous pouvons optimiser encore plus les adresses en utilisant la réécriture d’adresse (url rewriting) mais cela sera expliquer dans un de mes prochains billet.


Mots-clés : PHP, Référencement, Web 2.0, SQL, Site Web