Aller au contenu

Modification du script de réécriture récursive


MarinMS

Sujets conseillés

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 on
RewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.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

Lien vers le commentaire
Partager sur d’autres sites

Et comment veux-tu pouvoir transmettre les valeurs des variables si tu ne connais pas leur nom ? :whistling:

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é par TheRec
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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"

:lol: Un peu d'auto-promo ne fait pas de mal :lol:

Dan

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...