Rewriting avec query string

WRInaute occasionnel
Normalement :
Code:
RewriteRule ^/$ %{QUERY_STRING} [C]
RewriteRule ^aaa\.php\?page=bb$ http://localhost/allpotes_new/livre-or.html? [R=301,L]
A verifier.
 
WRInaute occasionnel
Peut-être sans le "?" toute à la fin ... :?
Code:
RewriteRule ^/$ %{QUERY_STRING} [C]
RewriteRule ^aaa\.php\?page=bb$ http://localhost/allpotes_new/livre-or.html [R=301,L]
Sinon as tu une erreur 404 ou 500 ?
 
WRInaute discret
je ne suis pas sûr d'avoir compris très précisément ta question mais je pense que tu cherches l'option QSA comme je l'ai cherchée aussi ;)

le fait de mettre [QSA] à la fin de ta ligne permet de conserver les querystring. En gros :
http://localhost/aaa.php?page=bb

devient en quelque sorte

http://localhost/livre-or.hml?page=bb

et ta variable GET "page" est accessible.

Par contre si tu veux faire des tests depuis ton .htaccess sur les query string c'est plutôt ça qu'il te faut :
RewriteCond %{QUERY_STRING} from=pg_(.+)
RewriteRule ....

tu poses une condition de query string (ici sur ?from=) et tu appliques la règle du dessous quand ça répond à ça.

mais encore une fois , je ne suis sûr d'avoir compris précisément ce que tu veux !
 
WRInaute impliqué
Rafgug, j'ai l'impression que te trompes de sens.

Le Rewriting est utilisé généralement pour supprimer les url avec query string.
Là, ton exemple montre que tu désires le contraire : tu en as marre de tes urls en html et tu voudrais qu'elles aient l'apparence d'url avec plein de paramètres...
C'est bien cela que tu veux ? ;)
 
WRInaute discret
Remi L. a dit:
Rafgug, j'ai l'impression que te trompes de sens.

Le Rewriting est utilisé généralement pour supprimer les url avec query string.
Là, ton exemple montre que tu désires le contraire : tu en as marre de tes urls en html et tu voudrais qu'elles aient l'apparence d'url avec plein de paramètres...
C'est bien cela que tu veux ? ;)
:lol: :lol:
Oui, en effet!

Je m'explique: j'avais un site avec des variables dans l'url ( j'avais pas si mal fait le chose, les variables étaient parsées de telle façon qu'il n'y en avait qu'une dans l'url, mais là n'est pas la question ). Je suis en train de refaire mon site et je suis donc passé en url rewriting, avec jolies url: http://www.allpotes.ch/new/

Le truc c'est que j'aimerais faire des redirections 301 de mes anciennes pages AVEC query string vers les nouvelles en HTML...

Précision sup: je ne vais pas garder la querystring, je vais juste la transformer en joli HTML, :)

@++

R@f
 
WRInaute discret
J'ai fais quelques tests, mais... c'est pas encore tout à fait ce que je veux:
RewriteCond %{QUERY_STRING} page=(.+)
RewriteRule aaa http://localhost/allpotes_new/accueil.html [R=301]
RewriteRule bbb http://localhost/allpotes_new/livre-or.html [R=301]

Deux pbs:
- avec aaa.php?page=aaa, ca m'envoie bien sur accueil ; mais aaa.php?page=bbb ne m'envoie pas sur livre-or.html
- la query string est transmise dans la nouvelle url, ce que je veux pas: accueil.html?page=aaa

Merci!

@++

R@f
 
WRInaute occasionnel
Quelque chose dans ce goût là
Code:
	RewriteCond %{QUERY_STRING} page=(.+)
	RewriteRule aaa\.php	%1

	RewriteRule aaa$ http://localhost/allpotes_new/accueil.html? [R=301]
	RewriteRule bbb$ http://localhost/allpotes_new/livre-or.html? [R=301]
 
WRInaute discret
nikoshr a dit:
Quelque chose dans ce goût là
Code:
	RewriteCond %{QUERY_STRING} page=(.+)
	RewriteRule aaa\.php	%1

	RewriteRule aaa$ http://localhost/allpotes_new/accueil.html? [R=301]
	RewriteRule bbb$ http://localhost/allpotes_new/livre-or.html? [R=301]
La classe, merci bcp! :)

@++

R@f
 
WRInaute occasionnel
ça m'a bien aidé aussi merci! J'avais fait une erreur dans la query string d'une newsletter. Du coup j'arrivais pas à traquer comme il faut les entrées depuis celle-ci!

Parfait!
 
Discussions similaires
Haut