Webmaster Hub: Ecrire une nouvelle rewriting rules - Webmaster Hub

Aller au contenu

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

Ecrire une nouvelle rewriting rules Noter : -----

#1 L'utilisateur est hors-ligne   ensemblevide 

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

Posté 19 novembre 2004 - 17:07

Bonjour

J'ai déjà fait appel à vous il y a 3 semaines. Ca fonctionne nickel.
Maintenant je reviens vers vous car pour des problèmes de stats qui ne prennent pas en considération les url du genre : mapage.php?id_article=6 je souhaiterais réécrire quelques pages que je n'avais pas jusqu'à présent touchées.

Donc mon site fonctionne sous SPIP et voici la règle :

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


Pour informations cette règle réécrit différentes pages (autant des pages articles, rubriques, breves). Par exemple :

article.php3?id_article=12
rubrique.php3?id_rubrique=12
breve.php3?id_breve=12


Avec cette règle au lieu d'avoir des pages nommées comme ci-dessus, j'ai par exemple :

article-Saint_ Germain___Tourist-34.html


Pour arriver à écrire l'url avec "article", le titre de l'article et son id (idem pour rubrique et brève) des petites fonctions forts sympathiques sont intégrées dans un fichier spip (il fait sa petite cuisine interne).
Voici les fonctions :

Ici pour article
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;
}


Là pour rubrique :
function generer_url_rubrique($id_rubrique) {
  if (! $id_rubrique) $id_rubrique = 0;        
        $result2 = spip_query("SELECT id_rubrique,titre FROM spip_rubriques WHERE id_rubrique=$id_rubrique");
        $row2 = spip_fetch_array($result2);
        $id_secteur2 = $row2['id_rubrique'];
        $titre2 = trim($row2['titre']);
       $url2 = "rubrique-".translitteration(nettoyerURL($titre2)). "-$id_rubrique.html";
        if ($GLOBALS['recherche2']) $url2 .= "?var_recherche2=".urlencode($GLOBALS['recherche2']);
        return $url2;
}


Et enfin pour brève :
function generer_url_breve($id_breve) {
  if (! $id_breve) $id_breve = 0;        
        $result3 = spip_query("SELECT id_rubrique,titre FROM spip_breves WHERE id_breve=$id_breve");
        $row3 = spip_fetch_array($result3);
        $id_secteur3 = $row3['id_rubrique'];
        $titre3 = trim($row3['titre']);
       $url3 = "breve-".translitteration(nettoyerURL($titre3)). "-$id_breve.html";
        if ($GLOBALS['recherche3']) $url3 .= "?var_recherche3=".urlencode($GLOBALS['recherche3']);
        return $url3;
}


Voilà le fonctionnement.
Maintenant j'ai quelques pages qui ne respectent pas la règle dans la mesure où ces pages (ayant une structure différente des pages articles, rubriques et brèves) sont nommées différemment.
Donc comment faire pour que, par exemple :

home.php3?id_rubrique=6 devienne home.html ou accueil.html, peu importe. Je voudrais arriver à comprendre le principe car je doit l'appliquer à d'autres pages :

imprimer.php3?id_article=12
pourrait devenir
imprimer_titre_article.htm
par exemple.
annuaire.php3?id_rubrique=9
pourrait devenir
annuaire.html

et
annuaire.php3?id_rubrique=10
pourrait devenir
directory.html
. Oui j'ai 2 langues.

Etc
Je sais pas si c'est faisable. J'espère avoir été clair.
D'avance merci

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)