Aller au contenu

Variables dans urlrewriting


Sujets conseillés

Bonjour,

je me pose quelques petites questions concernant l'urlrewriting et la gestion des variables...

Tout d'abord, l'ordre des variables est-il important ?

Admettons que mon .htaccess soit :

RewriteEngine on
RewriteRule ^annonces-([0-9]+)-([0-9]+)\.html$ page.php?var1=$1&var2=$var2 [L]

La réécriture fonctionnera-t-elle si dans ma page php j'ai un coup : annonces-$var1-$var2.html

et un autre coup : annonces-$var2-$var1.html

Je pense que non .... alors comment feriez-vous ? Il y a en fait un grand nombre de variables et je me vois mais faire une règle de réécriture pour chacunes des combinaisons :blush:

Sinon, est-il possible de masquer des variables dans la réécriture et de les retrouver ensuite en utilisant la méthode $_GET ?

C'est à dire qu'au lieu d'avoir : annonces-$var1-$var2.html j'ai : annonces-$var1.html mais avec la possbilité de retouver la $var2 dans mon traitement php ? Vu la quantité de variables que je dois passer d'un page à l'autre ça me serait grandement utile au niveau du référencement.

Merci pour votre aide :) J'attends vos réponses avec impatience.

Le réécriture est encore assez obscure pour moi ...

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

La règle de réécriture que tu proposes va avoir pour effet que le serveur va traduire /annonces-machin-bidule.html en /page.php?var1=machin&var2=bidule. De même, /annonces-bidule-machin.html sera transformé en /page.php?var1=bidule&var2=machin.

Cela répond-il à ta question ?

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

Merci c'est bien ce que je pensais ...

Mais alors comment faire pour que ce soit toujours

annonces-machin-bidule.html

Si j'ai page.php?var1=machin&var2=bidule ou page.php?var2=bidule&var1=machin ??

C'est en fait ca mon gros problème ...

Et est-il possible de masquer les variables dans l'url, tout en les recupérant avec un $_GET dans le traitement php ?

Lien vers le commentaire
Partager sur d’autres sites

L'url rewriting change les urls recues par le serveur, et non celles qui sont affichées sur la page.

Si ton programme php écrit page.php?id=5, ca restera comme ca, que tu mettes de l'url rewriting ou non.

Il te faut modifier le programme php, pour qu'il affiche non pas page.php?id=5, mais mapage-5.html (par exemple).

Ensuite, lorsque la personne aura cliqué sur ce nouveau lien (mapage-5.html), alors ton serveur sera capable de traduire ce lien pour le transformer en page.php?id=5

Lien vers le commentaire
Partager sur d’autres sites

Ok merci ca j'ai bien compris... dans mes pages php tous mes liens sont bien de la forme annonces-$var1-$var2.html

Autant pour moi :blush:

Je suis donc obligé de créer plusieurs règles d'écriture...

Maintenant est-il possible de conserver toutes mes variables (en méthode GET) sans les réécrire dans l'url ? Si oui comment ?

Prenons l'exemple d'un système de pagination :

Les paramètres à transmettre seront la page actuelle, le nombre total de pages, et le nombre d'articles à afficher par page.

Est-il possible de les transmettres par la méthode GET tout en n'affichant dans l'url que annonce.html grâce a la réécriture.

C'est à dire au lieu d'avoir :

annonces-$pageActuelle-$totalPage-NbArticles.html

avoir uniquement

annonces.html

je sais pas si je suis très clair...

En tout cas merci pour votre aide

Lien vers le commentaire
Partager sur d’autres sites

Je ne suis pas sûr de comprendre ce que tu veux faire. :blink:

Il me semble qu'avec GET, tu vas avoir /page.php?var1=...&var2=... ou éventuellement /annonces.html?var1=...&var2=..., mais cette dernière forme est sans intérêt.

Avec POST, tu aurais /page.php ou /annonces.html. Mais ceci n'a rien à voir avec l'URL rewriting.

Est-ce que j'ai répondu à ta question ? :)

Jean-Luc

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...