htaccess et changement de nom de variable

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics


auboutdufil
Nouveau WRInaute
 
Messages: 21
Inscription: Ven Mai 19, 2006 15:24

htaccess et changement de nom de variable

Message le Sam Déc 15, 2007 0:12

Bonjour à tous,

Je vous explique mon problème.
Je souhaite rediriger dans mon fichier htaccess les url du type suivant :
-www.site.com/index.php?oldparam=xxx
-www.site.com/index.php?oldparam=yyy
-www.site.com/index.php?oldparam=zzz
en
-www.site.com/index.php?newparam=xxx
-www.site.com/index.php?newparam=yyy
-www.site.com/index.php?newparam=zzz

etc...

Y a t il des gouroux htaccess dans l'assemblée pour trouver la solution ?
Merci

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Sam Déc 15, 2007 1:33

Essaie ça

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^oldparam=(.*)$
RewriteRule index\.php /index.php?newparam=%1 [R=301]


Bon, la redirection c'est à toi de voir si tu la veux. Si tu ne la veux pas, enlève ce qui est entre [].

Vap


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Dim Déc 16, 2007 8:53

RewriteCond %{QUERY_STRING} ^oldparam=(.*)$
cela veux dire que la chaine commence a 'old.... alors qu'elle commence a partir de l'index, donc ne pas mettre le début de chaine (^) si le serveur le permet répond au problème

pour la redirection , je l'écrirais comme ceci:
Code: Tout sélectionner
RewriteCond %{QUERY_STRING} oldparam=(.*)$
RewriteRule ^$   /index.php?newparam=%1 [QSA,L]

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Dim Déc 16, 2007 13:13

@KOogar,

J'aurais du tester effectivement.

Du coup j'ai une question aussi. A quoi sert le QSA puisqu'on met une autre chaîne après le '?' ?

Sinon, ta règle ne se déclenche pas chez moi avec ^$ en partie gauche.

Et enfin, si on veut une redirection 301, [QSA,L,R=301] dans ta règle crée une boucle infinie. C'est le QSA qui pose problème.

@auboutdufil, ce qui suit marche chez moi:

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} oldparam=(.*)$
RewriteRule index\.php /index.php?newparam=%1 [R=301,L]


auboutdufil
Nouveau WRInaute
 
Messages: 21
Inscription: Ven Mai 19, 2006 15:24

Message le Dim Déc 16, 2007 13:23

Merci mais du coup j'ai joué mon petit joueur avec un 301 en php

J'ai pas pu le faire en htaccess car je dois rediriger une liste de valeur en pas toutes les valeurs...
En fait, je ne dois pas rediriger tous les oldparam en newparam, je sais pas si je suis clair... :roll:

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Dim Déc 16, 2007 13:31

C'est clair maintenant.

Tu dois encore pouvoir le faire en .htaccess, mais c'est peut etre plus simple en PHP.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Dim Déc 16, 2007 14:29

Vap a écrit:@KOogar,

J'aurais du tester effectivement.

Du coup j'ai une question aussi. A quoi sert le QSA puisqu'on met une autre chaîne après le '?' ?

Sinon, ta règle ne se déclenche pas chez moi avec ^$ en partie gauche.

Et enfin, si on veut une redirection 301, [QSA,L,R=301] dans ta règle crée une boucle infinie. C'est le QSA qui pose problème.

@auboutdufil, ce qui suit marche chez moi:

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} oldparam=(.*)$
RewriteRule index\.php /index.php?newparam=%1 [R=301,L]


super de tester,

et en mettant l'url physique en absolue ? tu peux regarder si cela fonctionne sur ton serveur ?

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} oldparam=(.*)$
RewriteRule $ http://www.site.com/index.php?newparam=%1 [R,L]


Pour le QSA, je le mettais plus par habitude... si tu me dis que cela ne sert a rien de forcer l'ajout de la chaine des arguments, n'ayant jamais tester, je ne peux qu'apprendre :D

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Dim Déc 16, 2007 19:21

KOogar a écrit:super de tester,

et en mettant l'url physique en absolue ? tu peux regarder si cela fonctionne sur ton serveur ?

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} oldparam=(.*)$
RewriteRule $ http://www.site.com/index.php?newparam=%1 [R,L]


Pour le QSA, je le mettais plus par habitude... si tu me dis que cela ne sert a rien de forcer l'ajout de la chaine des arguments, n'ayant jamais tester, je ne peux qu'apprendre :D


Moi aussi j'ai appris car je croyais que la query string commençait après le ? :wink:

Ca marche avec l'URL en dur. Note que ce qui suit marche aussi:

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} oldparam=(.*)$
RewriteRule $ /index.php?newparam=%1 [R,L]


Ce qui ne marchait pas est:


Code: Tout sélectionner
RewriteCond %{QUERY_STRING} oldparam=(.*)$
RewriteRule ^$ /index.php?newparam=%1 [R,L]


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Déc 17, 2007 14:20

super, c'est le top sur ce coup avec des "redirections massives" en .htaccess :D

si tu as encore ton serveur d'allumé, peux-tu voir si en remplacant la globale QUERY_STRING par REQUEST_URI le code ronronne toujours ?

Code: Tout sélectionner
RewriteCond %{REQUEST_URI} oldparam=(.*)$
RewriteRule $ /index.php?newparam=%1 [R,L]

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Lun Déc 17, 2007 20:36

KOogar a écrit:super, c'est le top sur ce coup avec des "redirections massives" en .htaccess :D

si tu as encore ton serveur d'allumé, peux-tu voir si en remplacant la globale QUERY_STRING par REQUEST_URI le code ronronne toujours ?

Code: Tout sélectionner
RewriteCond %{REQUEST_URI} oldparam=(.*)$
RewriteRule $ /index.php?newparam=%1 [R,L]


Ca marche pas...


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Déc 19, 2007 22:08

yep,

devrait marcher ? si tu es dans le coin... pour un ptit look after it

Code: Tout sélectionner
RewriteCond %{REQUEST_URI} index.php?oldparam=(.*)$
RewriteRule $ /index.php?newparam=%1 [R,L]


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : JotSpot



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités