RewriteRule repetition mot

WRInaute occasionnel
Bonjour,

J'ai du mal a faire un redirection , on dirait qu'il revient constament sur la régle !!!

J'ai une url du type :

http://www.eeeeeeee.fr/match-resultat/pays1-u21-pays2-u21.html

J'ai écris cette régle pour renomer "pays1" en "pays1-town"

Code:
RewriteRule	^match-resultat/(.*)pays1(.*).html	/match-resultat/$1pays1-town$2.html [R=301,L]

Mais quand je tape une url du style:
http://www.eeeeeeee.fr/match-resultat/pays1-u21-pays2-u21.html

Il me renvoie vers une url du style (je 'ai raccourci), il ne cesse de répéter le mot "town"

http://www.eeeeeeee.fr/match-resultat/pays1-town-town-town-town-town-t ... 2-u21.html

Savez-vous pourquoi ?

Merci beaucoup
 
WRInaute occasionnel
Bonjour,

Parce que ton url de redirection est matchée par ta règle.

Essayes :
Code:
RewriteRule   ^match-resultat/(.*)pays1(.*).html   /foo-bar/$1pays1-town$2.html [R=301,L]

πR
 
WRInaute occasionnel
chtipepere a dit:
Bonjour,

Parce que ton url de redirection est matchée par ta règle.

Essayes :
Code:
RewriteRule   ^match-resultat/(.*)pays1(.*).html   /foo-bar/$1pays1-town$2.html [R=301,L]

πR

En fait je voudrai garder mon url et y changer un mot clé, comment dois-j faire dans ce cas ?

match-resultat/abc-pays1-def.html en match-resultat/abc-pays1-town-def.html
match-resultat/pays1-def-hig.html en match-resultat/abc-pays1-town-def.html
match-resultat/abc-pays1.html en match-resultat/abc-pays1-town-def.html

en gros je remplace "pays1" par "pays1-town" sur toutes les url , comment dois-je procéder ? Est-ce possible ?

Merci
 
WRInaute occasionnel
Je pense avoir réussit
Je suis passé par ceci, j'ignore si il y a plus simple :

Code:
RewriteCond %{REQUEST_URI} (.*)pays1(.*) [NC]
RewriteCond %{REQUEST_URI} !(.*)pays1-town(.*) [NC]
RewriteRule	^match-resultat/(.*)pays1(.*).html	/match-resultat/$pays1-town$2.html [R=301,L]
 
WRInaute passionné
Oui il y aurait plus direct si au lieu de (.*) tu lui disait de n'attendre que des lettres, et que tu precisait bien que tu cherchait pays1- .. mais a mon avis tes deux conditions ca va aussi, je ne sais pas laquelle des deux solutions utilise le moins de millisecondes mais je ne trouve pas ca grave de toutes facons :)
 
WRInaute occasionnel
FortTrafic a dit:
Oui il y aurait plus direct si au lieu de (.*) tu lui disait de n'attendre que des lettres, et que tu precisait bien que tu cherchait pays1- .. mais a mon avis tes deux conditions ca va aussi, je ne sais pas laquelle des deux solutions utilise le moins de millisecondes mais je ne trouve pas ca grave de toutes facons :)

Comment je fais pour lui préciser que je n'attend que des lettres ?
 
WRInaute passionné
N'oublie pas, avec le tiret :

Code:
RewriteRule   ^match-resultat/(.*)pays1-([a-z]+).html   /match-resultat/$1pays1-town-$2.html [R=301,L]

Par contre il y a certains cas ou ca ne fonctionnera pas, si tu as encore un tiret dans ce qui vient apres pays1-
 
Discussions similaires
Haut