Ne prendre qu'une partie d'un QueryString dans une regex RewriteCond

Discussion dans 'URL Rewriting et .htaccess' créé par Baptiste Bro, 9 Décembre 2019.

Tags:
  1. Baptiste Bro
    Baptiste Bro Nouveau WRInaute
    Inscrit:
    12 Septembre 2019
    Messages:
    4
    J'aime reçus:
    0
    Bonjour, :)
    Nous avions un site web avec des URLs du type pour nos articles : https://www.monsite.com/article?name=mon-article
    Récemment, nous avons changé la structure du site et utilisons maintenant un router PHP.
    Les nouvelles URLs ressemble à cela : https://www.monsite.com/fr/article/mon-article

    J'ai donc utilisé un .htaccess pour rediriger les anciennes URLs vers les nouvelles URLs :
    Code:
    RewriteCond %{QUERY_STRING} ^name=(.+)$ [NC]
    RewriteRule ^article(.php)?$ /fr/article/%1? [NC,R=301]
    Tout fonctionne très bien, sauf que nous avions partagé des URLs de la v1 (article?name=mon-article) sur Facebook... sauf que Facebook rajoute toujours le paramètre GET "?fbclid=token" à ses URLs partagées.
    Lors de la v1, quand on cliquait sur un lien Facebook, ça donnait ça : https://www.monsite.com/article?name=mon-article&fbclid=token (forcément, Facebook rajoutait &fbclid à la place de ?fbclid car fbclid était en second paramètre)
    Maintenant sur la v2, ça donne ça : https://www.monsite.com/fr/article/mon-article&fbclid=token
    Dans la v1, le paramètre GET fbclid était en second, donc avec & devant. Maintenant, il est
    seul sur la v2, mais le & n'est pas remplacé par un ?. Ce qui fait que notre article se nomme "mon-article&fbclid=token" à la place de "mon-article", étant donné que le &fbclid n'est plus considéré comme un paramètre car il est le premier paramètre GET et n'a pas de point d'interrogation ("?fbclid=").

    J'ai donc résolu le problème en enlevant ce "&fbclid=token" avec PHP puis en faisant une redirection 301, mais j'aurais aimé savoir s'il était possible de faire cela avec le .htaccess en modifiant le code déjà présent ci-dessus ?
    Je pensais à un code de ce genre : RewriteCond %{QUERY_STRING} "prendre tout ce qu'il y a après name= et s'arrêter à &fbclid="
    OU à un code qui remplace &fbclid par ?fbclid (ça serait carrément plus simple, à mon avis)
    J'ai essayé plusieurs Regex depuis ce matin mais rien ne marche pour l'instant.

    Voilà donc mon problème, qui n'est pas super grave car PHP s'occupe des redirections, mais j'aurais trouvé ça plus propre de le faire direct dans le .htaccess :)
    J'espère que quelqu'un pourra m'aider s'il connait la solution ou a déjà été confronté à ce problème ! (merci surtout FB qui rajoute un paramètre à ses URLs externes ! :mad:)

    Merci d'avance pour votre aide ! :D

    Cordialement,
     
  2. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 623
    J'aime reçus:
    65
    lu

    et capturer les 2 ne fonctionne pas ?
    Code:
    RewriteCond %{QUERY_STRING} ^name=(.+)&fbclid=(.+)$ [NC]
    RewriteRule ^article(.php)?$ /fr/article/%1? [NC,R=301]
     
    Baptiste Bro apprécie ceci.
  3. Baptiste Bro
    Baptiste Bro Nouveau WRInaute
    Inscrit:
    12 Septembre 2019
    Messages:
    4
    J'aime reçus:
    0
    Bonjour KOogar,
    Merci pour votre réponse !
    En effet, votre solution marche à merveille ! Merci beaucoup pour votre aide :)

    Cordialement,
     
Chargement...
Similar Threads - prendre partie QueryString Forum Date
Prendre une partie de l'URL actuelle pour redirection URL Rewriting et .htaccess 25 Janvier 2013
Il faut arrêter de se prendre la tête Référencement Google 10 Janvier 2020
Comment forcer Google à prendre en compte Title et Meta Description Référencement Google 23 Décembre 2019
Besoin d'aide pour comprendre mon Analyse Dareboost Débuter en référencement 24 Août 2019
Comment Google peut prendre un compte des liens aussi pourris.... Netlinking, backlinks, liens et redirections 9 Août 2019
Comprendre le (Other) dans Acquisition/Canal Google Analytics 11 Juillet 2019
Comprendre les revenus d'AdSense AdSense 31 Décembre 2018
statistique à comprendre Le café de WebRankInfo 11 Décembre 2018
Comprendre une explosion de trafic sur 1 jour Google Analytics 7 Décembre 2018
Trouver un conseiller pour décision à prendre quant à l'avenir d'un site. Demandes d'avis et de conseils sur vos sites 24 Juillet 2018
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice