carm Posté 21 Décembre 2005 Posté 21 Décembre 2005 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 onRewriteRule ^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 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 ...
Jeanluc Posté 21 Décembre 2005 Posté 21 Décembre 2005 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
carm Posté 21 Décembre 2005 Auteur Posté 21 Décembre 2005 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 ?
Jeanluc Posté 21 Décembre 2005 Posté 21 Décembre 2005 Je ne comprends pas ton problème. L'URL rewriting fait toujours la "traduction" dans l'autre sens, c'est-à-dire de /annonces-...-....html vers /page.php?var1=...&var2=.... Jean-Luc
Anonymus Posté 21 Décembre 2005 Posté 21 Décembre 2005 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
carm Posté 21 Décembre 2005 Auteur Posté 21 Décembre 2005 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 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
Jeanluc Posté 21 Décembre 2005 Posté 21 Décembre 2005 Je ne suis pas sûr de comprendre ce que tu veux faire. 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant