Source ::
Titre :: Eviter le duplicate content avec des urls contenant des mots clé
Catégorie :: Redirection
URL de l'article :: /eviter-le-duplicate-content-avec-des-urls-contenant-des-mots-cle_10.html
Auteur de l'article :: forty
Date d'enregistrement de l'article :: 11 Juil 2008
Description :: Si nous avons ajouté des mots clé dans nos url avec une règle de réécriture, il est impératif de s'assurer lors d'un changement de ces mots clé que nous ne pouvons pas avoir de duplicate content.
Nous allons donc voir comment mettre en place une redirection 301 dès que l'url est différente de celle que nous attendons.
Nous allons donc repartir de l'exemple donnée pour l'ajout de mots clé dans l'url avec une url de la forme fichier-le-titre-de-mon-article-41701.html.
Nous pouvons écrire une fonction qui nous génère le lien à partir du titre de l'article et de l'id :


Eviter le duplicate content avec des urls contenant des mots clé


Si nous avons <strong>ajouté des mots clé</strong> dans nos url avec une règle de réécriture, il est impératif de s'assurer lors d'un changement de ces mots clé que nous ne pouvons pas avoir de duplicate content. 
Nous allons donc voir comment mettre en place une redirection 301 dès que l'url est différente de celle que nous attendons. 
Nous allons donc repartir de l'exemple donnée pour l'<a href="comment-ajouter-des-mots-cles-dans-vos-urls_1.html">ajout de mots clé dans l'url</a> avec une url de la forme <i>fichier-le-titre-de-mon-article-41701.html</i>.
Nous pouvons écrire une fonction qui nous génère le lien à partir du titre de l'article et de l'id :
<?php
function get_lien_article($id) {
  
$id_esc mysql_real_escape_string($id);
  
$query_titre mysql_query("SELECT titre FROM articles WHERE id='$id_esc' ");
  
$titre mysql_result($query_titre0'titre');
  
$titre_reecrit format_url($titre$type);
  return 
'/fichier-'.$titre_reecrit.'-'.$id.'.html';
}

// la fonction pour formater vos urls
// elle est differente de celle donné dans l'article de Koogar 
// mais tout aussi performante :)
function format_url($nom)
{
    
$accent="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ";
    
$noAccent="aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby";
    
$reecriture=strtr(trim($nom),$accent,$noAccent);
    
$url=preg_replace("# #","-",$reecriture);
    return  
$url;
}
?>

Grâce à cette fonction nous pouvons maintenant vérifier que l'url appelée est bien celle attendue.
Ce code modifie l’entête de la page, il est donc indispensable de le mettre avant tout affichage de contenu.

<?php
$url_attendue 
get_lien_article($_GET['id']);
$url_reelle $_SERVER['REQUEST_URI'];
if (
$url_attendue != $url_reelle) {
  
header('Status: 301 Moved Permanently'false301);
  
header('Location: ' $url_attendue);
  exit;
}
?>

Avec cette solution, il n’y a qu’une version de la page accessible et pas de perte d’ancienneté !

Et voilà : nous avons une belle url avec des mots clé et aucun risque de contenu dupliqué !