MarinMS Posté 28 Juillet 2005 Posté 28 Juillet 2005 Bonjour, Je suis en train de mettre en place le script de Dan concernant la réécriture récursive. Je souhaitais tout d'abords pouvoir enlever les index- en début d'écriture, ca me donne : RewriteEngine onRewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.html $1&$2=$3$4\.html [N] RewriteRule ([^-]+)-([^-]*)(.*)\.html /mon_repertoire/?$1=$2$3 [L] Jusque là tout va bien, seulement voilà, j'aimerai au final passer de : /index.php?var1=valeur1&var2=valeur2.....&varN=valeurN à /valeur1-valeur2....-valeur3.html Donc enlever index en début d'adresse, pour ça, c'est ok, mais pour afficher seulement les valeurs des variables et non pas les noms des variables + les valeurs, je sèche. Quelqu'un aurait-il une idée pour me mettre sur la voie ? Merci d'avance Marin
Dan Posté 28 Juillet 2005 Posté 28 Juillet 2005 Et comment veux-tu pouvoir transmettre les valeurs des variables si tu ne connais pas leur nom ? Ou bien alors, tu as un nombre fini de variables et les transmet toujours dans le même ordre... et dans ce cas tu n'as pas besoin de récursivité, une simple règle suffit. Dan
MarinMS Posté 1 Août 2005 Auteur Posté 1 Août 2005 En fait, j'ai 4 variables que je connais : J'ai $page, $menu, $rub et $id. Ces variables ne changeront pas, et seront toujours dans cet ordre. Le truc, c'est que parfois, je dois seulement récupérer $page et $menu dans l'URL, parfois je ne récupère que $page, parfois les 4. Mes URLs seront du type : /page1-1.html (je récupère $page et $menu) mais pour certaines pages j'aurai /page2-1-rubrique-id.html Alors du coup je me demande, comme dis Dan, s'il me suffit de passer par une simple regle, où est-ce une question de récursivité ? (Après il est clair que ma réécriture devient figée à 4 variables. Ca devient moins flexible.) Marin
TheRec Posté 1 Août 2005 Posté 1 Août 2005 (modifié) Bonjour, Tu peux faire 4 règles ... de la plus restrictive (4 variables) à la moins restrictive (1 variable, $page selon tes dires) en donnant [L] comme flag pour chaque règle. Maintenant si il t'arrive d'avoir $page et $rub (ordre dicontinu par rapport à ce que tu nous as dit) seulement il n'y aura pas d'autre solution (viable) que de passer le nom des variables dans l'url et d'utiliser l'écriture récusive dans ce cas... Modifié 1 Août 2005 par TheRec
MarinMS Posté 3 Août 2005 Auteur Posté 3 Août 2005 Merci ppour vos réponses, j'ai essayé les 2 solutions que vous m'avez proposé. Au final il est plus judicieux d'utiliser la récursivité, plus souple et plus évolutif. Du coup je me pose une autre question qui concerne le référencement. Je vais avoir des urls en /page-titre.html, ne peux pas utiliser de - dans les noms des mes pages (conflit avec la regle de récursivité) du style /page-titre-numero-1.html pour /?page=titre-numero-1 (titre-numero-1.php). J'ai entendu dire que les _ n'étaient plus, ou n'allaient plus être considéré comme des séparateurs de mots, car j'aurai pu nommer mes pages titre_numero_1.php. Alors je me demandais si le point . pouvait être considéré comme un séparateur ? En gros, est-ce préférable, pour les moteurs de recherche, d'avoir : -www.monsite.com/page-titre_numero_1.html ? ou [b-]www.monsite.com/page-titre.numero.1.html ? Merci d'avance Marin
Dan Posté 3 Août 2005 Posté 3 Août 2005 Salut Marin, Sans hésiter, la version avec les . me semble préférable. Le "underscore" a un fonctionnement particulier sous Google. "vive_dan" sera retrouvé avec "vive dan" mais pas avec "vive" ni avec "dan" Un peu d'auto-promo ne fait pas de mal Dan
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant