R=301 et rewriting cho non?

Nouveau WRInaute
J'ai peur que si je double mes règles de réécritures c est à dire que je laisse celle là que je rajoute mes nouvelles je sois blacklisté par google

je peux faire ça sinon?

RewriteRule ^moto/moto_([^=]*)_([^=]*)_([0-9]+).html$ /moto.php?prenom=$1&ville=$2&id=$3 [QSA,L,R=301]

Merci
 
WRInaute passionné
la deuxième partie de ta règle de "correction" ne doit pas pointer vers la page php mais vers la nouvelle adresse réécrite. et ne mets pas de [L] ;)
 
Nouveau WRInaute
Merci

Donc tu me conseille de faire ça
RewriteEngine On

RewriteRule ^moto/moto_([^=]*)_([^=]*)_([0-9]+).html$ /moto.php?prenom=$1&ville=$2&id=$3 [QSA,L]

RewriteRule ^moto_([^=]*)_([0-9]+).html$ /moto/moto_$1_$2_$3.html [QSA,R=301]

?
Merci en tout cas
 
WRInaute passionné
:'( décidément cette semaine personne ne comprend rien à ce que j'écris :(

BON

ta PREMIERE règle doit servir à renvoyer les anciennes URL moisies moto/moto_alex_paris_12.html vers les NOUVELLES moto-alex-paris-12.html
Donc moto.php n'a rien à faire là ;)
Comme les NOUVELLES URL doivent encore etre transformées par la suite, pas de L, mais un R=301 (laisse tomber ton QSA, il sert à rien)

ta DEUXIEME règle est une règle tout-à-fait banale pour transformer les NOUVELLES URL moto-alex-paris-12.html en /moto.php?prenom=$1&ville=$2&id=$3 avec cette fois le [L]

C'est plus clair là ?
 
Nouveau WRInaute
oui en fait j ai compris ce que tu veux dire mais ce que tu appelle ma 1ere rèlgle c'est ma 2e en fait et ma 2e là 1ere.

car tu dis
ta PREMIERE règle doit servir à renvoyer les anciennes URL moisies moto/moto_alex_paris_12.html vers les NOUVELLES moto-alex-paris-12.html
Donc moto.php n'a rien à faire là Wink

ça correspond pas à
RewriteRule ^moto_([^=]*)_([0-9]+).html$ /moto/moto_$1_$2_$3.html [R=301]
? ( ok pour qsa je vire)

pour créer mes nouvelles je fais ça
RewriteRule ^moto-([^=]*)-([0-9]+).html$ /moto.php?ville=$1&id=$2 [QSA,L]

je suis pas sûr sur la 1ere en fait

Merci je t en suis très reconnaissant.
 
WRInaute passionné
Problème n°1 :
Tu ne peux pas avoir un $3 alors que ton URL ne contient que DEUX informations.

Problème n°2 :
pourquoi tu mets des blancs soulignés "_" dans la règle alors que les nouvelles url ont des tirets...
 
Nouveau WRInaute
en fait je met un $3 car justement les anciennes url contennaient 3 informations

en gros j arrive pas a rediriger mes anciennes url vers les nouvelles
comment je peux lui expliquer la structrure de mes anciennes url?

Sinon pour la nouvelle regle de réecriture c est bon ça?
RewriteRule ^moto-([^=]*)-([0-9]+).html$ /moto.php?ville=$1&id=$2 [QSA,L]


Merci en tout cas
 
Nouveau WRInaute
pour rediriger les url moisi vers les nouvelles si je faisais ça?

RewriteRule ^moto-([^=]*)-([0-9]+).html$ /moto/moto_$1_$2_$3.html [R=301]

ça peux marcher?

Merci
 
Nouveau WRInaute
bon alors

1ere règle:

RewriteRule ^moto-([^=]*)-([0-9]+).html$ /moto.php?ville=$1&id=$2 [QSA,L]
qui va réecrire mes nouvelles urls

2e règle: pour indiquer aux anciennes url l'adresse des nouvelles

RewriteRule ^moto-([^=]*)-([0-9]+).html$ moto/moto_$1_$2_$3.html [R=301]

T'en pense quoi?
Merci
 
WRInaute passionné
Bon... je vais faire simple.
Soyons un peu logiques.
Si
RewriteRule ^moto-([^=]*)-([0-9]+).html$ /moto.php?ville=$1&id=$2 [QSA,L]
envoie les adresses du premier membre vers le deuxième,

Alors, la deuxième règle ne peut pas être comme tu l'as écrite... Tu l'as mise à l'envers :roll:
 
Nouveau WRInaute
tu veux dire l'utiliser comme celà?

RewriteRule ^moto/moto_$1_$2_$3.html$ /moto-([^=]*)-([0-9]+).html [R=301]

Honnetement je trouve ça bizarre

ça veut dire que les url moto-paris-75 vont etre envoyé vers moto/moto... ?

Hummm
 
WRInaute passionné
:'(

une règle de réécriture c'est TOUJOURS
Rewriterule fausseUrl(paramètre1)-(parametre2) URLsurleserveur-$1-$2

La fausse renvoie vers celle du serveur.
Les $1 et $2 désignent les 1ere et 2eme parenthèses de l'URL "fausse".

Toi ce que tu veux c'est que les url avec des _ soient renvoient vers les url avec des tirets, et tu laisses tomber un des $ au passage (il suffit de ne pas l'utiliser dans le deuxième membre).

Allez, un effort...
 
Nouveau WRInaute
bon alors résumons

1ere règle:

RewriteRule ^moto-([^=]*)-([0-9]+).html$ /moto.php?ville=$1&id=$2 [QSA,L]
qui va réecrire mes nouvelles urls

2e règle: pour indiquer aux anciennes url l'adresse des nouvelles

RewriteRule ^moto-([^=]*)-([0-9]+).html$ moto/moto_$1 [R=301]
je chauffe?
Merci
 
WRInaute passionné
Pas du tout !
Repars du début pour ta règle des anciennes URL, parce que plus ça va plus tu bidouilles et tu t'éloignes du résultat.
Je ne te donnerai pas "la réponse", c'est trop simple pour te mâcher le travail ;)

ET ESSAIE D'ASSIMILER QUE POUR CETTE REGLE LE PREMIER MEMBRE EST L'ADRESSE TAPEE PAR L'UTILISATEUR (CELLE AVEC LES _) ET LE SECOND DOIT ETRE L'ADRESSE TELLE QUE TU LA FAIS MAINTENANT (AVEC LES -)

Bon, j'espère que c'est assez gros comme ça :p
 
Nouveau WRInaute
bon
1ere règle on est d'accord
RewriteRule ^moto-([^=]*)-([0-9]+).html$ /moto.php?ville=$1&id=$2 [QSA,L]

2e règle je l'espere
RewriteRule ^moto_([^=]*)_([^=]*)_([0-9]+).html$ /moto-([^=]*)-([0-9]+).html [R=301]

(je pense qu il faut mettre des $1 dans le 2e membre de la 2e règle non?)
 
Nouveau WRInaute
euh en fait

transformer

moto/moto_alex_paris_12.html
en
moto-paris-12.html

mais c'est pareil je pense non?
a part si je dois faire ça

RewriteRule ^moto/moto_([^=]*)_([^=]*)_([0-9]+).html$ /moto-$2-$3.html [R=301]
 
Nouveau WRInaute
en fait c'est vraiment facile je sais pas pk je me suis perdu dans des trucs de fou.

Bref merci enormement pour ton aide tu es au top !

@ bientot sur le forum
 
Discussions similaires
Haut