Redirections, variables et Url Rewriting

Nouveau WRInaute
Salut,

Depuis que j'ai découvert l'url rewriting, j'arrete plus... Merci WRI!
Cependant j'ai un petit probleme, certainement tout con:

J'aimerais faire des redirections de pages comme: repertoire/page.php?var1=xx&var2=yy (indexées par google) vers leur équivalentes: repertoire/page_xx_yy.html

J'utilise donc la redirection suivante dans un .htaccess:
RewriteRule ^page\.php$ http://www.monsite.com/repertoire/page_var1_var2.html [R=301,L]
Mais quand je tape dans mon browser www.monsite.com/repertoire/page.php?var1=xx&var2=yy j'obtient: www.monsite.com/repertoire/page_xx_yy.h ... &var2=yy... et je me passerait bien de cette repetition de variables...

Je n'ai pas trouvé la syntaxe adequate :(
Si quelqu'un pouvait m'eclairer, ce serait cool :)
Merci d'avance.
 
WRInaute discret
Je tente une réponse, bien que n'étant pas encore un spécialiste Google :)

Je pense qu'il vaudrait mieux que tu indiques à Google de ne plus indexer les pages php sinon tu risques une pénalité de contenu identique. Pour cela tu dois utiliser un fichiers robots.txt.

Il y a des indications là-dessus sur le post "phpBB et URL Rewriting" dans ce même forum de WRI.
 
Nouveau WRInaute
toute aide est digne d'interet :)

Mais je ne risque pas de pénalités etant donné que R=301 indique un remplacement définitif.

je cherche..... je cherche....
 
Olivier Duffez (admin)
Membre du personnel
pour vérifier si ta règle est bonne, tu ne dois pas taper l'adresse
Code:
page.php?var1=xx&var2=yy
mais plutôt la nouvelle
Code:
page_xx_yy.html
et puis les règles s'écrivent : à gauche la nouvelle écriture, à droite l'ancienne :
Code:
RewriteRule ^page_([a-z]*)_([a-z]*).html  page.php?var1=$1&var2=$2
 
Nouveau WRInaute
Merci de ta réponse

Mais là tu me donnes l'explication du probleme inverse; je m'explique:

Je vois par exemple dans google des anciennes pages du style:
http://www.monsite.com/repertoire/rubri ... xx&var2=yy

et j'aimerais, qu'une fois ce lien cliqué, l'utilisateur (et le moteur) soit redirigé de façon permanante vers: http://www.monsite.com/repertoire/rubrique_xx_yy.html
(ce lien, lui fonctionne bien et les variables sont bien traitées)

J'ai donc utilisé le code de redirection....
- RewriteRule ^ancien\.html$ nouveau.html [R=301,L]
(et là c'est à gauche l'ancienne ecriture et à droite la nouvelle)
Ce qui donne....
- RewriteRule ^rubrique\.php?var1=xx&var2=yy$ rubrique_xx_yy.html [R=301,L]

mais ça ne marche pas :(

Voilà
 
WRInaute occasionnel
RewriteRule ^rubrique\.php?var1=xx&var2=yy$ rubrique_xx_yy.html [R=301,L]

Petite modif :
Code:
RewriteRule ^rubrique\.php\?var1=xx&var2=yy$ rubrique_xx_yy.html [R=301,L]

Il faut penser à échapper TOUS les caractères spéciaux. Le point d'interrogation a été oublié ici.

Je pense que ça marchera mieux comme ça.

Jocelyn
 
Nouveau WRInaute
Merci Jocelyn, mais ça ne marche pas...

J'ai tout essayé et dés que je mets un \ devant le ? ça déconne... (si je n'en mets pas ça déconne aussi)

Bon, je crois qu'un "RedirectPermanent" devrait faire l'affaire

A+
 
WRInaute occasionnel
Ton problème n'est pas vraiment un problème de réécriture d'url mais de redirection(apparement tu as bien traité la réécriture d'url pour faire le chemin inverse). Moi j'utiliserai plutôt redirectMatch à ta place...
cf : -http://httpd.apache.org/docs/mod/mod_alias.html#redirectmatch
 
WRInaute passionné
Lauweb,

Fais tout de même attention à ne pas créer une boucle sans fin...
Si une page A est convertie en page B et que cette même page B est elle-même reconvertie en page A... tu seras mal barré ! :wink:

Dan
 
WRInaute occasionnel
Effectivement ce que dis Dan risque de t'arriver vu ce que tu expliques, mais tu devrais pouvoir contourner ca en changeant le nom des variables dans le nouveau script (celui qui effectivement fais le boulot).
 
WRInaute passionné
Guig2 a dit:
Effectivement ce que dis Dan risque de t'arriver vu ce que tu expliques, mais tu devrais pouvoir contourner ca en changeant le nom des variables dans le nouveau script (celui qui effectivement fais le boulot).
Bien vu ! je n'avais pas pensé à cela ! Chapeau bas !
 
Discussions similaires
Haut