ensemblevide Posté 19 Novembre 2004 Posté 19 Novembre 2004 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 onRewriteRule ([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=12rubrique.php3?id_rubrique=12breve.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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant