Webmaster Hub: Redirection pour changer de règles de réécriture - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Redirection pour changer de règles de réécriture Noter : -----

#1 L'utilisateur est hors-ligne   ensemblevide 

  • Groupe : Actif
  • Messages : 16
  • Inscrit(e) : 01-janvier 04

Posté 23 septembre 2005 - 13:43

Bonjour,

J'utilise la réécriture d'url depuis 1 an et le passage de mon site sous SPIP 1.7.2.

Aujourd'hui je viens de passer en 1.8.2. Cette version propose plein de bonnes choses dont une méthode de réécriture mieux foutue que la mienne.

En effet, l'inconvénient de ma méthode est que les url contiennent le titre des pages séparés par des _. Or j'ai eu la confirmation qu'il valait mieux utiliser les tirets à la place. La nouvelle méthode permet de faire cela.

Pour infos Google a bien référencé toutes mes pages. Donc je veux faire des redirections des anciennes urls vers les nouvelles avec code 301.

Donc je détaille. Initialement je réécris les urls des articles, rubriques et brèves.
J'ai mis les fonctions pour
générer les url : par ex :

function generer_url_article($id_article) {
        if (! $id_article) $id_article = 0;       
        $result = spip_query("SELECT id_secteur,titre FROM spip_articles
WHERE id_article=$id_article");
        $row = spip_fetch_array($result);
        $id_secteur = $row['id_secteur'];
        $titre = trim($row['titre']);
       $url = "article-".translitteration(nettoyerURL($titre)).
"-$id_article.html";
        if ($GLOBALS['recherche']) $url .=
"?var_recherche=".urlencode($GLOBALS['recherche']);
        return $url;
}



pareil pour rubrique et brève. Sauf que devant l'url il y a rubrique- et
breve-
Ainsi mes urls sont du type : article-le_titre_article-numerodelarticle.html

Dans le htaccess :

RewriteRule ([a-z]+)-([^=]*)-([0-9]+).html$    /$1.php3?id_$1=$3 [L]



La méthode que je souhaite appliquer maintenant est déjà définie (merci les gens de Spip !):

Ainsi dans le htaccess :
RewriteRule ^\+[^/\.]+\+?(\.html)?$ breve.php3 [QSA,E=url_propre:$0,L]

RewriteRule ^-[^/\.]+-?(\.html)?$ rubrique.php3 [QSA,E=url_propre:$0,L]

RewriteRule ^[^/\.]+(\.html)?$ article.php3 [QSA,E=url_propre:$0,L]



Et le code est :

function generer_url_article($id_article) {
   $url = _generer_url_propre('article', $id_article);
   if ($url)
      return $url . _terminaison_urls_propres;
   else
      return "article.php3?id_article=$id_article";
}

function generer_url_rubrique($id_rubrique) {
   $url = _generer_url_propre('rubrique', $id_rubrique);
   if ($url)
      return '-'.$url.'-'._terminaison_urls_propres;
   else
      return "rubrique.php3?id_rubrique=$id_rubrique";
}

function generer_url_breve($id_breve) {
   $url = _generer_url_propre('breve', $id_breve);
   if ($url)
      return '+'.$url.'+'._terminaison_urls_propres;
   else
      return "breve.php3?id_breve=$id_breve";
}



Par exemple un article aura cette url : le-titre-de-mon-article.html
une breve : +le-titre-de-ma-breve+.html
une rubrique : -le-titre-de-ma-rubrique-.html

Maintenant comment dans le htaccess faire pour que mes anciennes url soient redirigées vers les nouvelles ? Je vais faire pour les MR des redirections permanentes avec le code 301.

Pour vous aidez à comprendre, mon site est www.francomix.com

Merci d'avance
Philippe
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)