Modification d'une régle de réécriture avec redirection

Discussion dans 'URL Rewriting et .htaccess' créé par euralium, 2 Juin 2015.

  1. euralium
    euralium Nouveau WRInaute
    Inscrit:
    15 Mars 2007
    Messages:
    4
    J'aime reçus:
    0
    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:
    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:
    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:
    RedirectMatch 301 ^/([-a-z0-9]+)&art=([0-9]+)$   /blog/$1-$2
    Merci pour votre aide précieuse.
     
  2. loubet
    loubet WRInaute impliqué
    Inscrit:
    19 Février 2003
    Messages:
    871
    J'aime reçus:
    0
    RewriteRule ^([-a-z0-9]+)&art=([0-9]+)$ /blog/$1-$2 [QSA,L,R=301]
     
  3. euralium
    euralium Nouveau WRInaute
    Inscrit:
    15 Mars 2007
    Messages:
    4
    J'aime reçus:
    0
    @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.