Messages: 4

Enregistré le: 15 Mar 2007

Message le Mar Juin 02, 2015 16:16

Bonjour,

J'ai des URL dynamique du type
http://www.monsite.fr/blog/blog.php?titre=titrearticle&ref=11
(11 étant une variable, en l'occurence la référence de l'article)

J'ai, depuis longtemps, créé un fichier htaccess pour réécrire mes URL sous la forme
http://www.monsite.fr/blog/titrearticle&art=11

Voici le code de mon htaccess actuel

Code: Tout sélectionner
RewriteEngine on
RewriteRule ^([-a-z0-9]+)&art=([0-9]+)$   /blog/blog.php?titre=$1&ref=$2 [L]


Tout ceci fonctionne très bien. Sauf que je souhaite modifier ma règle de réécriture pour faire disparaitre définitivement les "&" de mes url. Les nouvelles URL doivent donc être sous la forme:
http://www.monsite.fr/blog/titrearticle-11
Jusque là tout va bien. Je modifie la ligne de mon htaccess qui devient:

Code: Tout sélectionner
RewriteEngine on
RewriteRule ^([-a-z0-9]+)-([0-9]+)$   /blog/blog.php?titre=$1&ref=$2 [L]


Mon probléme est que j'ai des liens externes vers mes URL réécrites sur l'ancien modèle et que je ne souhaite pas perdre les visiteurs qui suivent ces liens. Je voudrais également que les moteurs de recherche comprennent que le lien entre mes anciennes réécritures et mes nouvelles. Et là je me tire les cheveux.
J'ai essayé de rajouter cette ligne mais ça ne fonctionne pas:

Code: Tout sélectionner
RedirectMatch 301 ^/([-a-z0-9]+)&art=([0-9]+)$   /blog/$1-$2


Merci pour votre aide précieuse.
Haut
2 Réponses
Messages: 872

Enregistré le: 19 Fév 2003

Message le Mar Juin 02, 2015 16:24

RewriteRule ^([-a-z0-9]+)&art=([0-9]+)$ /blog/$1-$2 [QSA,L,R=301]
Haut
Messages: 4

Enregistré le: 15 Mar 2007

Message le Mar Juin 02, 2015 16:39

@loubet

Mille fois merci. ça fonctionne!

J'avais bien essayé quelque chose de ce genre mais sans le QSA à la fin et ça ne marchait pas.

Encore merci pour cette aide précieuse.
Haut