Bonjour,

Je ne maîtrise pas bien les expressions régulières et j'ai dû rater un truc car j'ai un soucis :

Mon but : rediriger ces pages nomdusite/team/prenom-nom-membre/ vers ces pages nomdusite/membres/prenom-nom-membre/ (sachant que prenom-nom-membre = les prénoms et noms de 200 pers donc 200 pages à rediriger).

Sur Wordpress, j'ai utilisé un plugin de redirection et j'ai saisi :
URL source : /team/*
URL finale : https://nomdusite/membres/*

Sauf que j'ai des pages avec les URLs suivantes qui sont en 404 car ça boucle ( à cause du "s" de Teams ?)
https://nomdusite/en/teams/
https://nomdusite/en/teams/cria-team/

Comment bien écrire ma redirection pour éviter cela ?
Merci et bonne journée !
Modérateur
Bonjour,

https://nomdusite/en/teams/ et https://nomdusite/en/teams/cria-team/ ne sont visiblement pas de la forme nomdusite/team/

Si certaines url contiennent /team/ et d'autres /teams/, il faut ajouter s? après team dans l'expression régulière. s? signife 0 ou 1 lettre s.

Toutes les url commencent-elles par /en/ ou bien y-a-t-il aussi des /fr/ ou autre chose ou rien ? Il y a sans doute quelque chose à ajouter pour traiter ces cas, mais il faudrait connaitre la forme de tes url avec plus de précision pour répondre à la question.

Amicalement,
Merci @parsimonhi. Je viens de remettre la redirection telle qu'elle était avant et te donner les URLs, tu vas pouvoir regarder :

https://geographie-cites.cnrs.fr/membres/joelle-abou-issa/ est une "belle" page mais mon plugin de gestion d'annuaire de membres génère aussi cette URL (page non utilisée) : https://geographie-cites.cnrs.fr/team/joelle-abou-issa/
Je ne veux pas voir apparaître cette seconde page dans Google quand je tape le nom de la personne. Google les a malheureusement déjà indexées donc je veux rediriger la l'URL /team/... vers /membres/... (Joelle est un exemple mais j'ai 200 autres personnes).

Dans le plugin WP Redirection par Par John Godley (doc ici : https://redirection.me/), j'ai entré ce que tu vois sur cette image : upload/1637065448-50580-capture.jpg

Du coup, la redirection de la page de Joëlle passe comme je le voulais mais si tu vas sur la version anglaise du site avec cette URL de page Equipe par ex : https://geographie-cites.cnrs.fr/en/teams/cria-team/ j'ai une 404 et cette URL : https://geographie-cites.cnrs.fr/enhttps://geographie-cites.cnrs.fr/membres/*s/cria-team/

Merci de ton aide
Modérateur
Bonjour,

Je tenterais 2 redirections :

1)
url source : /team/(.*)
url cible : /membres/$1

2)
url source : /en/teams/(.*)
url cible : /en/membres/$1

Note : il me semble qu'il y a d'autres redirections en place. En particulier, https://geographie-cites.cnrs.fr/en/membres/joelle-abou-issa/ semble être redirigée vers https://geographie-cites.cnrs.fr/membres/joelle-abou-issa/, ce qui fait que tu ne vas peut-être pas obtenir ce que tu souhaites. S'il n'y a pas de version anglaise des pages membres, alors la 2e redirection peut aussi être :

url source : /en/teams/(.*)
url cible : /membres/$1

EDIT: je viens de voir que dans la version anglaise, c'est /members/ au lieu de /membres/ dans l'url. Du coup, la 2e redirection devrait être :

url source : /en/teams/(.*)
url cible : /en/members/$1

On pourrait aussi le faire en une seule redirection, mais l'expression régulière est un peu plus complexe. Déjà, essaie de faire marcher les deux redirections simples.

Je ne sais pas s'il faut ou pas ajouter explicitement https://geographie-cites.cnrs.fr devant les url cibles. À tester.

Amicalement,
Modifié par parsimonhi (16 Nov 2021 - 16:33)
Alors pour la version FR, j'ai saisi ça :
url source : /team/(.*)
url cible : https://geographie-cites.cnrs.fr/membres/$1
Mes pages membres sont bien redirigées et mes pages anglaises qui étaient en 404 ne le sont plus.

Pour la version anglaise, il y a effectivement un truc bizarre.
Chez moi, en nav privée, https://geographie-cites.cnrs.fr/en/members/joelle-abou-issa/ pointe bien vers sa page Membre en EN.
En revanche, https://geographie-cites.cnrs.fr/en/team/joelle-abou-issa-2/ donne (sans redir de ma part encore ) https://geographie-cites.cnrs.fr/enhttps://geographie-cites.cnrs.fr/membres/joelle-abou-issa-2/

L'hébergeur du site a mis ça dans l'htaccess, est-ce que ça peut justifier cet effet ?
#REWRITE parisgeo.cnrs.fr to geographie-cites.cnrs.fr
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} parisgeo.cnrs.fr$ [NC]
RewriteCond %{QUERY_STRING} ^.*lang=en.*$ [NC]
RewriteRule ^(.*)$ "https://geographie-cites.cnrs.fr/en/" [L,R=302]
RewriteCond %{HTTP_HOST} parisgeo.cnrs.fr$ [NC]
RewriteRule ^(.*)$ "https://geographie-cites.cnrs.fr/" [L,R=302]

En plus pour faire une redir de nom de dossier, il faut que la fin soit semblable nom ? car en EN, la fin du slug est -2 alors que la page est juste le nom.
Au pire, c'est déjà bien en FR...
Merciiii
Modérateur
Bonjour,

1) L'effet pour https://geographie-cites.cnrs.fr/en/team/joelle-abou-issa-2/ qui donne https://geographie-cites.cnrs.fr/enhttps://geographie-cites.cnrs.fr/membres/joelle-abou-issa-2/ provient (peut-être?) de la règle de redirection que tu as faites,

2) Je croyais que dans la version anglaise, c'était /en/teams/ (avec un s) et non pas /en/team/ comme tu l'as mis dans ton dernier post. Lequel est utilisé ?

3) As-tu essayé de ne pas mettre https://geographie-cites.cnrs.fr dans l'url cible de ta redirection ?

4) As-tu essayé de mettre aussi la 2e règle de redirection que j'ai indiqué ? (ton plugin semble accepter plusieurs redirections)

url source : /en/teams/(.*)
url cible : /en/members/$1

Amicalement,
Modifié par parsimonhi (16 Nov 2021 - 18:55)
1) Alors quand je retire la redir, la page https://geographie-cites.cnrs.fr/en/team/joelle-abou-issa-2/ aboutit bien à sa version moche donc c'est bien la redir qui génère l'URL https://geographie-cites.cnrs.fr/enhttps://geographie-cites.cnrs.fr/membres/joelle-abou-issa-2/

2) en anglais c'est le même mot "team" au singulier, seul /en/ s'ajoute. En revanche sur la cible c'est /membres/ en FR et /en/members/ en EN

3) Si je la mets sans https://geographie-cites.cnrs.fr/, ma page issa-2 n'aboutit pas, ça dit "La page n’est pas redirigée correctement"

4) Je viens d'ajouter ta 2è redir et même cas que 1)
Ah mais dans ton 4), il faut que je mette team au lieu de teams non ?
url source : /en/team/(.*)
url cible : /en/members/$1
Modérateur
Bonjour,

S'il n'y a pas de "s" à team, évidemment, ça change tout (je ne comprends pas pourquoi il y en avait un dans tes premiers posts).

Je repose ma question un peu plus précisément concernant https://geographie-cites.cnrs.fr/ : si tu ne mets pas https://geographie-cites.cnrs.fr/ dans l'url cible, est-ce que la redirection en Français marche ?

Si elle marche, alors essaie de mettre dans la 1er redirection :
url source : /en/team/(.*)
url cible : /en/members/$1

Et mets dans la 2e redirection :
url source : /team/(.*)
url cible : /membres/$1

Ainsi, la redirection en anglais, si elle doit s'appliquer, aura peut-être lieu avant la redirection en français.

Amicalement,
Je viens de mettre les 2 redir dans ton ordre :

- Redirection page Membre FR : OK
- L'effet de bord que j'indiquais dans mon tout premier poste concernait une page qui n'avait rien à voir avec mes pages membres mais qui comportait "teams" dans son URL : https://geographie-cites.cnrs.fr/en/teams/ - Ca aussi c'est OK
- Redirection page Membre EN : KO (cette URL https://geographie-cites.cnrs.fr/en/team/joelle-abou-issa-2 => message Cette page ne fonctionne pas
geographie-cites.cnrs.fr vous a redirigé à de trop nombreuses reprises.
Essayez de supprimer les cookies..
ERR_TOO_MANY_REDIRECTS

Merci beaucoup pour ta patience et ton aide parsimonhi
Yes !!! Ca fonctionne en EN (le -2 se mettait tout seul car WP génère le slug automatiquement et comme on a fait l'anglais après le français, il ajoute un -2 car il ne tient pas compte du préfixe /en/ (dans le plugin de langue, on peut décider de cacher le répertoire de langue donc ça ferait 2 URLs identiques).

C'est parfait en tous cas, merci merci beaucouuuuuuppppppp