Version complète: sur le forum Webmaster Hub : url rewrite ... encore !
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
annweb
Bonjour à vous tous !

j'ai cherché sur le net et sur le hub pour tenter de trouver une réponse à ma question mais probablement que je n'utilise pas les bons mots pour ma recherche alors peut-être quelqu'un d'ici pourrait me venir en aide..

j'essais de faire la chose suivante et très simple:

je veux rediriger un utilisateur qui entre l'adresse suivant:
http://www.test.com/a/b/c/?query=(des mots quelconques)
Vers
http://www.test.com/script.php?mot=(des mots quelconques)

Comment puis-je m'y prendre ?

Merci à tous !
Dan
Salut Annweb,

Ce n'est pas "simple", en ce sens que tu veux modifier le query string et l'URL.
Dans une réécriture classique, on ne réécrit pas le query string (ce qui vient après le ?), et on se limite à l'URL.

Je pense qu'avant de te lancer dans ce type de réécriture, tu devrais nous donner des URLs actuelles, la forme que tu voudrais voir réécrite et bien te poser la question: "j'y gagnerai quoi?"
Parce qu'à lecture de ton post, j'aurais tendance à répondre "Rien" wink.gif

Dan
XopheWH
Bonjour,

j'aimerais moi aussi réaliser une redirection du même genre. En pratique, j'aimerais que:

- si l'internaute écrit:
h**p://www.domain.tld/test-1234.html
- il voit:
h**p://www.domain.tld/test.php?a=1234

De plus
- si l'internaute écrit:
h**p://www.domain.tld/test-1234.html?b=5678
- il voit:
h**p://www.domain.tld/test.php?a=1234&b=5678

Merci d'avance pour vos suggestions.
Anonymus
CITATION(XopheWH @ samedi 14 mai 2005, 14h24)
Bonjour,

j'aimerais moi aussi réaliser une redirection du même genre. En pratique, j'aimerais que:

- si l'internaute écrit:
h**p://www.domain.tld/test-1234.html
- il voit:
h**p://www.domain.tld/test.php?a=1234

De plus
- si l'internaute écrit:
h**p://www.domain.tld/test-1234.html?b=5678
- il voit:
h**p://www.domain.tld/test.php?a=1234&b=5678

Merci d'avance pour vos suggestions.
*

Pour ceci, tu devrais t'intéresser aux articles du Hub, notamment ceux parlant d'url rewriting. ils sont présents ici :
http://www.webmaster-hub.com/publication/article5.html et
http://www.webmaster-hub.com/publication/article15.html

Si tu ne comprends pas quelque chose, n'hésites pas à faire appel au forum wink.gif

Anonymus.
Dan
Salut XopheWH,

C'est vraiment simple, une seule règle wink.gif

CODE
RewriteEngine On
RewriteRule test-([0-9]+)\.html  test.php?a=$1 [QSA,L]


Le flag QSA (Query string append) s'occupera tout seul de la variable b du deuxième exemple wink.gif
XopheWH
Effectivement, merci beaucoup. Je crois que je vais me plonger un peu plus dans la doc à l'avenir, je ne connaissais pas [QSA]...

Merci.
YannCo
Bonjour, bon je suis hanté,

J'utilise une règle de reécriture qui fonctionne très bien trouvé sur webrankinfo pour que mes visiteurs soient toujours sur domaine.truc sans les www, donc j'en déduis que RewriteRule fonctionne sur mon hébergement ... seulement voila, je veux récrire des pages très simple index.php?p=mapage en mapage.html, donc rien de compliqué mais ça ne marche pas sad.gif

CODE
RewriteRule page_([a-z]+)\.html index.php?p=$1 [L]


Merci d'avance, Yann
Dan
CITATION(YannCo @ lundi 16 mai 2005, 13h24)
Bonjour, bon je suis hanté,

J'utilise une règle de reécriture qui fonctionne très bien trouvé sur webrankinfo pour que mes visiteurs soient toujours sur domaine.truc sans les www, donc j'en déduis que RewriteRule fonctionne sur mon hébergement ... seulement voila, je veux récrire des pages très simple index.php?p=mapage en mapage.html, donc rien de compliqué mais ça ne marche pas sad.gif

CODE
RewriteRule page_([a-z]+)\.html index.php?p=$1 [L]


Merci d'avance, Yann
*

Salyt Yann,

Ta règle n'accepte que les caractères minuscules après page_
Es-tu certain que ce soit ce que tu transmets ?

Sinon, plus génériquement, tu peux essayer
CODE
RewriteRule page_(.+)\.html index.php?p=$1 [L]

Cela réécrira toujours le texte qui suit page_

Dan
YannCo
CITATION
Ta règle n'accepte que les caractères minuscules après page_


Heu, là je crois que c'est moi qui n'ai pas tout compris, je précise mon but car je suis peut etre completement à coté de la plaque.

Je veux obtenir des pages en html, c'est à dire que dans la barre d'adresse j'ai htt......./mapage.html au lieu de htt..../index.php?p=mapage.

si c'est bien la procédure à suivre, ta proposition ne fonctionne pas plus, sinon désolé, je n'ai rien compris au rewriting biggrin.gif

Merci
Dan
Selon ton premier exemple, la règle que je t'ai donnée reconvertira page_toto.html en index.php?p=toto

Par contre, ce n'est qu'une réécriture. Il faut que ton programme génère les liens sous la forme page_toto.html parce que la réécriture ne le fera pas automatiquement.

Je pense que ta mauvaise compréhension de l'URL rewriting vient de là wink.gif

Dan
YannCo
Ok, merci bon ... ben je m'y intéresserai un peu plus tard, c'était surtout par curiosité
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.