Faire une redirection htaccess

Bonjour,

Je cherche à faire plusieurs redirections, via mon .htaccess
Mon nom de domaine : http://www.example.org (qui accueille un Wordpress).
Tout d'abord, je cherche à rediriger toutes les URLs
http://www.example.org/mon-article/undefined ( ou http://www.example.org/mon-article/undefined/ ) vers http://www.example.org/mon-article/
En second, je cherche à rediriger toutes mes URL http://www.example.org/mon-article-1-test vers http://www.example.org/mon-article-1 (avant j'utilisais un plugin, mais si 2 lignes de htaccess peuvent suffire ...).

Je montre ce qui ne fonctionne pas chez moi :
RewriteRule ^undefined/(.+)$ http://example.org/$1 [R=301,L]
RewriteRule ^undefined(.+)$ http://example.org/$1 [R=301,L]

RewriteRule ^-test/(.+)$ http://example.org/$1 [R=301,L]
RewriteRule ^-test(.+)$ http://example.org/$1 [R=301,L]

Ca n'a pas l'air de fonctionner, pourtant c'est le plus logique que j'ai réussi à faire.
Je peux avoir un peu d'aide ? Les expressions régulières, ce n'est pas trop mon fort :-/

2 réponses

  1. Bonjour !
    Le petit accent devant (^), c'est pas de la déco enfaîte, c'est pour signaler que l'url doit commencer par ta regex, ce qui n'est pas le cas vu que tu a un nom de dossier avant.
    Enlève celui-ci et tout devrait bien ce passer.
    0
    1. Pas du tout, rien ne fonctionne.
      Je pensais que ^ était pour signaler qu'il y avait quelque chose avant.
      Je viens de tester, et ... non ,
      # RewriteRule -test(.+)$ http://example.org/$1 [R=301,L]
      me redirige, vers http://example.org
      0
      1. Le dièse indique un commentaire dans ton htaccess, si tu en a un, ça ne peut pas marcher :)
        0
      2. Ca, je le sais bien ;)
        Mais vu que je redirige toutes mes URLs vers ma home et pas mes articles, j'ai préféré commenter.
        Je ne suis pas un noob quand même ;-) (quoi que ..., bon, mais pas à ce point-là ;) ).
        0
      3. ET c'est quoi qui fonctionne pas, la redirection en elle même (La "reconnaissance") ou l'url d'arrivée ?
        Car là du coup, dans tes rewriting tu ne stock pas ce que tu a avant -test en parenthèse
        0
      4. Je pense que, en effet, c'est d'ici que vient le soucis.
        Du coup je suis redirigé vers $1, mais $1 est vide ;-)
        0
      5. Essaye donc plutôt ceci :
        RewriteRule ^(.+)-test$
        0