Expressions régulières : mauvais renvois :-/

Fermé
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020 - Modifié le 2 juin 2019 à 09:17
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020 - 1 juil. 2019 à 14:53
Bonjour,

Ma question porte sur les expressions régulières, dans le cadre d'un blog migré il y a 3 ans d'Over-blog (avec, à l'époque, 3 types d'adresses URL différents) vers Wordpress. J'avais été aidée avec succès à l'été 2016 sur ce forum programmation (pour renseigner ensuite le plugin redirection de Wordpress) mais j'ai dû réinstaller Wordpress en décembre puis reconfigurer les redirections fin avril (curieusement, des redirections qui ont marché ne marchent plus). Ma question semble trop avancée pour un webmaster / n'est pas en lien direct avec Wordpress.

Trois expressions régulières sont renseignées pour mon blog. Mais il y a une faille quelque part et je suis perdue... J'ai connaissance des sites pour tester les expressions mais ne les comprends pas tellement :-/

Les expressions utilisées :

\/(\w|\-)+\.html
/$1/

/(\d{4})/(\d{2})/(.*)\.html
/$1-$2-$3/

/(\d{4})/(\d{2})/(.*)\/
/$1-$2-$3/

Mon problème : je me retrouve avec ces interprétations :

- Cas 1

/2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudehore-la-forestiere.html/
/e// (le e du mot juste avant le point + un / après le html)
Ce qui existe : /2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudeho/

/2016-01-voyage-en-louisiane-la-nouvelle-orleans-cote-jardins-et-universite.html/
/e//
/2016-01-une-coupe-au-salon-coiffeur-de-paris-de-jordy-brechkoff.html/
/f//
/2015-03-le-bouffon-du-president-du-theatre-et-des-politiques.html/
/s// (le s du mot avant html)

- Cas 2

/article-the-a-la-menthe-ou-t-es-citron-50504411.html
/1/
/article-paris-sous-la-neige-de-solferino-aux-tuileries-41499862.html
/2/
Ce qui existe : /article-paris-sous-la-neige-de-solferino-aux-tuileries-41499862/

Historique des échanges que j'ai eus depuis 3 ans (pour info) :
https://forums.commentcamarche.net/forum/affich-33736206-difficultes-a-creer-des-expressions-regulieres#p33737978 (2016)
https://forums.commentcamarche.net/forum/affich-35756011-redirections-sous-wordpress-creation-d-expressions-regulieres
https://forums.commentcamarche.net/forum/affich-36039743-creation-d-expressions-regulieres-a-utiliser-avec-l-extension-redirection-de-wp

Merci beaucoup de votre aide !

Bonne journée :-)

Configuration: Windows / Chrome 74.0.3729.169

8 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
2 juin 2019 à 12:00
Bonjour
J'ai connaissance des sites pour tester les expressions mais ne les comprends pas tellement :-/


C'est pourtant pas très compliqué. Ils ont tous deux zones de saisie de texte:
  • une pour copier coller ton texte d'entrée
  • une pour écrire ta regex

Ensuite, ils présentent tous un résultat visuel des captures (souvent du surlignage), et des substitutions.

Il faut chercher un site adapté à ton langage, en effet, il peut y avoir des subtilité d'un langage à l'autre.
Par exemple, wordpress, c'est du PHP, il me semble. Et en PHP, la syntaxe est encadrée par / / comme les syntaxes que tu montres.

On va donc faire une regex de testeur PHP
https://www.qwant.com/?q=regex+tester+php&t=web

Et prendre le 2eme, parce que j'en ai déjà entendu parlé sur le forum
Si on y copie colle ton texte et ta première Regex cela donne ça https://regex101.com/r/0Sw4IV/1
Dans "test string", tout le texte est surligné en bleu, c'est la capture principale ($0), et le e juste avant le point de .html est en vert, c'est le 1er groupe ($1).
Si je teste tous tes liens du cas 1, on arrive au même résultat -> $1 est la dernière lettre avant .html.
Si je teste tous les liens du cas 2, on arrive au même résultat -> $1 est le dernier chiffre avant .html.


Ta seconde Regex présente un problème de syntaxe, les / intermédiaires ne lui plaisent pas, il sont surlignés en rouge dans "Regular Expression", et dans "Explenation" à droite on lit
/ An unescaped delimiter must be escaped with a backslash (\)

https://regex101.com/r/0Sw4IV/3

En échappant, comme demandé par le site, les 2 / cette regex ne capture rien
https://regex101.com/r/0Sw4IV/4

Quand à ta 3eme Regex, une fois corrigée de la même erreur, elle ne capture rien non plus
https://regex101.com/r/0Sw4IV/5


En 2016, je t'avais montré un exemple avec regexstorm.net, mais il est dédié à l'implémentation .Net (C#, VB.Net, ASP.Net C++.NET, J#, etc...)
Si j'essaye ta première Regex, j'obtiens un résultat un peu different.
$1 ne contient plus seulement le dernier caractère avant .html, mais chaque caractère séparé dans une sous-capture différente. Je ne sais pas si PHP gère les sous captures, en tout cas je n'ai pas trouvé si c'est possible sur regex101

C'est pourquoi, il est important de trouver un site de test qui fonctionne dans le langage dont tu as besoin.
Je n'ai pas été assez clair là dessus en 2016.


Pour ton problème d'aujourd'hui

/2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudehore-la-forestiere.html/
/e// (le e du mot juste avant le point + un / après le html)
Ce qui existe : /2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudeho/

Cela veut il dire, que tu veut capturer
2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudeho
?
Si oui la taille est-elle le critère pour tronquer le lien?

0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
Modifié le 2 juin 2019 à 16:55
Bonjour,

Merci beaucoup de cette réponse.

Si cela me semble complexe, c'est sans doute car je n'ai aucune notion sur le sujet à la base et tente d'apprendre au fil des problèmes rencontrés. J'ai peur de faire empirer les choses :-/

Sous Wordpress, dans Réglages/Permalien, j'ai simplement fait le choix du réglage "Titre de la publication" qui correspond à https://leblogdelili.fr/
Je ne vois pas d'endroit où indiquer le nombre de caractère maximal.

J'aimerais au moins que /2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudehore-la-forestiere.html/
devienne /2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudehore-la-forestiere/ (l'expression régulière qui permettrait ça fonctionnerait sur d'autres articles construits selon le même modèle et à l'URL plus courte à la base).
Pour avoir /2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudeho/, il me faudrait ajouter une redirection manuelle après ça.

L'adresse /2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudeho/ semble compter 70 caractères, ou 72 caractères en incluant les 2 /. Je vois 1 caractère de plus pour /article-une-journee-a-disneyland-pour-un-enterrement-de-vie-de-jeune-f/
Après, je peux toujours créer des redirections une par une à la main pour les URLs trop longues. J'en ai malheureusement fait déjà pas mal :-/ (mais il y avait déjà 1200 ou 1600 articles avant la migration).

Depuis que je suis sous Wordpress, je choisis mes adresses et, en regardant, certaines sont plus longues que ces 70/72 caractères. Je ne sais pas comment cette césure s'est opérée.


Avec ce jeu d'URLs, j'ai l'impression d'avoir créé un autre genre d'adresse.

J'ai des adresses de type
/une-journée-hyperparisienne-de-rêve-avec-zoomonparis
alors que la page est nommée
/une-journee-hyperparisienne-de-reve-avec-zoomonparis/

Bon après-midi
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
2 juin 2019 à 17:46
Avec cette syntaxe
(\/[\w-]{1,70})[\w-]*\.html\/
, 3 exemples fonctionnent
https://regex101.com/r/1D8nEt/1

Pour l'accent circonflexe, je ne sais pas
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
2 juin 2019 à 18:37
Merci !

Les deux règles désactivées sont donc :

/(\d{4})/(\d{2})/(.*)\.html
/$1-$2-$3/
Cette règle a été utilisée 23 190 fois (depuis décembre je pense...)

/(\d{4})/(\d{2})/(.*)\/
/$1-$2-$3/
Cette règle en une semaine avait servi (avec erreur donc...) 565 fois en une semaine...

Je viens d'intégrer :

(\/[\w-]{1,70})[\w-]*\.html\/
$1/

Et ai vidé le cache ;-)

Je viens d'avoir un nouveau type d'erreur :

/2015/09/une-vue-a-360-sur-paris-depuis-la-terrasse-de-la-tour-montparnasse.html
/2015/09/e/

/2016/03/mes-debuts-dans-un-club-de-sport-avec-des-cours-collectifs.html
/2016/03/s/

Il doit rester quelque chose qui ne va pas, non ?
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
2 juin 2019 à 19:49
c'est cette règle \/(\w|\-)+\.html qui te prend la dernière lettre.
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
Modifié le 2 juin 2019 à 20:38
Aïe...

Avec les trois expressions que j'avais (qui seraient donc erronées toutes les trois), j'avais quand même des redirections qui marchaient :

Exemple 1 de ce qui marche

/2014/09/ou-bruncher-a-paris-43-la-boheme/
/2014-09-ou-bruncher-a-paris-43-la-boheme/
ou
/2016/03/one-man-show-maxime-gasteuil-a-le-plaisir-de-vivre-communicatif/
/2016-03-one-man-show-maxime-gasteuil-a-le-plaisir-de-vivre-communicatif/

Exemple 2 de ce qui marche

/2015/09/la-patisserie-des-reves-fete-ses-6-ans-le-gouter-de-la-rentree.html
/2015-09-la-patisserie-des-reves-fete-ses-6-ans-le-gouter-de-la-rentree/

==============

Les URLs commençant par "article" suivantes ne fonctionnent pas par exemple :

/article-escapade-jazz-112032675.html
/5/
ou
/article-le-salon-du-mariage-vu-par-une-celibataire-37952650.html
/0/
ou donc
/article-paris-sous-la-neige-de-solferino-aux-tuileries-41499862.html/
/2//

==============

Quand je désactive les trois règles pré-existantes et en mettant celle que vous avez trouvée :
(\/[\w-]{1,70})[\w-]*\.html\/
$1/
Cela fonctionne en effet bien pour retirer le html/ (une minorité d'adresses) avec les adresses qui ont des tirets :
/2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudehore-la-forestiere.html/
/2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudeho/
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
2 juin 2019 à 21:08
Je suppose
  • que si une regex capture un truc, ça ne passe pas à la suivante
  • que wordpress n'interprète pas tout à fait la syntaxe des 2 qui semblent erronées par regex101.


Du coup, ce sont ces 2 là qui faisaient le boulot.

Pour tous les exemples que tu donnes
((?:\/\d{4}[-\/]\d{2})?\/[\w-]{1,70})[\w-]*(?:\.html)?\/?

https://regex101.com/r/1D8nEt/2
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
2 juin 2019 à 21:42
Wahou, quelle formule ! Merci !

Je viens de changer la regex dans l'extension. Ca semble planter le blog. Si je tente de naviguer et clique sur un article, je vois "leblogdelili.fr vous a redirigé à de trop nombreuses reprises." :



Dans le journal des redirections, je vois par exemple ça plusieurs dizaines de fois en une minute :
/feed/
/feed/
de même pour :
/category/culture/spectacles/
/category/culture/spectacles/
ou
/tag/livre/page/4/
/tag/livre/page/4/
erreur aussi :
/article-mon-nouveau-carnet-x17-60462337/
/article-mon-nouveau-carnet-x17-60462337/

=================

En décembre dernier, quand je n'avais pas encore de html/ qui se promenaient dans mon extension de redirections, les trois types d'adresses que je trouvais étaient :

Cas de figure 1
URL qui se promène :
/article-dark-shadows-embarquez-pour-collinswood-105373457.html
Bonne URL :
/article-dark-shadows-embarquez-pour-collinswood-105373457/

Cas de figure 2
URL qui se promène :
/2015/01/se-regaler-a-porto-mes-bonnes-adresses-food-portugaises.html
Bonne URL :
/2015-01-se-regaler-a-porto-mes-bonnes-adresses-food-portugaises/

Cas de figure 3
URL qui se promène :
/2009/10/23/article-a-moi-new-york-38016983/
Bonne URL :
/article-a-moi-new-york-38016983/

Merci encore !
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
2 juin 2019 à 22:51
Le fait est que je ne connais pas du tout wordpress.
Je me suis contenter d’écrire une regex qui répond aux quelques exemples que tu as donnés.

Cependant, il est bien possible qu’elle provoque des effets de bord sur certains liens.

As tu la possibilité d’extraire tous tes liens dans un fichier et le mettre sur cjoint.
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
2 juin 2019 à 23:16
En dehors de la table "links" de la base de données, je ne vois pas comment extraire les liens. Je ne sais à vrai dire pas si cela répond à la question ?

J'essaie de voir en parallèle comment arranger cette histoire d'Analytics planté. Ça me gêne finalement plus que les 404 restantes ;-)
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
3 juin 2019 à 07:31
Bonjour, précision utile du matin : le problème Google Analytics est résolu :-)
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
3 juin 2019 à 08:55
Bonjour de nouveau, j'ai essayé de faire le récap' de tous les types de liens et les redirections qui ont ou avaient été mises en place :


Cas de figure 1 idéntifié en décembre

URL qui se promène :
/article-dark-shadows-embarquez-pour-collinswood-105373457.html
Bonne URL :
/article-dark-shadows-embarquez-pour-collinswood-105373457/

Ce qui a été créé :
\/(\w|\-)+\.html
/$1/

Cas de figure 2 identifié en décembre

URL qui se promène :
/2015/01/se-regaler-a-porto-mes-bonnes-adresses-food-portugaises.html
Bonne URL :
/2015-01-se-regaler-a-porto-mes-bonnes-adresses-food-portugaises/

/(\d{4})/(\d{2})/(.*)\.html
/$1-$2-$3/

Cas de figure 3

URL ancienne :
/2015/11/le-bistrot-valois-la-cuisine-francaise-a-l-honneur.html
Bonne URL :
/2015-11-le-bistrot-valois-la-cuisine-francaise-a-l-honneur/

/(\d{4})/(\d{2})/(.*)\/
/$1-$2-$3/

Cas de figure 4 identifié en décembre

URL qui se promène :
/2009/10/23/article-a-moi-new-york-38016983/
Bonne URL :
/article-a-moi-new-york-38016983/

Pas de règle créée

Cas de figure 5

/2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudehore-la-forestiere.html/
Bonne URL - tronquée (mais toutes les adresses ne sont pas strictement tronquées au même nombre de chiffres donc ne pas se concentrer sur le raccourcissement sans doute)
/2014-11-gouts-d-yvelines-2-2-mon-dejeuner-au-relais-chateaux-cazaudeho/

Cette redirection fonctionne uniquement si les premières sont désactivées :
\/[\w-]{1,70})[\w-]*\.html\/ (70 ne semble pas être une règle à 100%)
$1/

Cas de figure qui découle d'une règle inexacte

/article-paris-sous-la-neige-de-solferino-aux-tuileries-41499862.html/
/2//
ou
/article-paris-sous-la-neige-de-solferino-aux-tuileries-41499862.html
/2/
Ce qui existe : /article-paris-sous-la-neige-de-solferino-aux-tuileries-41499862/

Bonne journée !
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
3 juin 2019 à 08:24
Bonjour
Tant mieux pour tes stats.
Je vais déplacer le sujet dans le forum wordpress.
Peut-être que quelqu’un sait comment les directions fonctionnent.

D’un autre côté, si tu arrives à extraire la table links vers un csv, un ficher excel etc... je suis toujours preneur.
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
5 juin 2019 à 15:27
Bonjour,

Désolée, je suis peu chez moi mais je regarde si je vois ça dans ma base de données ce soir (je n'ai pas ces codes avec moi).

À distance, j'ai fait des tests quand même et, peut-être est-ce dû aux récentes mises à jour du plugin redirection, mais ces deux règles fonctionnent de nouveau :

/(\d{4})/(\d{2})/(.*)\/
/$1-$2-$3

/(.*).html
/$1

Sauf mauvaise interprétation de ma part, la seule règle que je n'arriverais pas à remettre en place (d'après les journaux) concerne :

Ancienne adresse :
/2015/12/un-christmas-tea-time-a-l-hotel-edouard-7.html

Ce que ça donne :
/2015/12/un-christmas-tea-time-a-l-hotel-edouard-7

Ce qui est en ligne :
/2015-12-un-christmas-tea-time-a-l-hotel-edouard-7/

Bon après-midi !
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
5 juin 2019 à 21:14
Bonsoir, j'ai un csv (je crois qu'il y a à boire et à manger dans les liens...). Je ne suis pas sûre que ce soit assez sécurisé pour un partage en public, non ? Bonne soirée :-)
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
5 juin 2019 à 23:02
Bonsoir,

je te propose de m'envoyer un lien vers un serveur comme cjoint, une dropbox etc... en MP.
Par contre, je n'aurais pas le temps d'y regarder avant demain soir.

Bonne soirée
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
6 juin 2019 à 07:53
Bonjour,
Merci !
Les MP doivent être fermés car le message "Cet utilisateur n'est pas membre de CommentCaMarche.net !" s'affiche ;-)
Bonne journée
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
6 juin 2019 à 11:30
Tu peux réessayer maintenant
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
14 juin 2019 à 23:14
Je viens de t'envoyer par MP, un nouveau fichier réduit, il y a 18885 liens différents.

Avec cette regex
\/(\d{4})\/(\d{2})\/([^.]{1,62}).+
et ça en remplacement
/$1-$2-$3/

Il y a 246 captures de ce type

/2015/12/pe-gase-icare-le-spectacle-du-cirque-alexis-gruss.html
/2015/12/pe-gase-icare-le-spectacle-du-cirque-alexis-gruss/
/2016/06/un-afterwork-autour-du-cafe-lavazza-au-village-de-roland-garros.html
/2016/06/degustabox-le-coffret-culinaire-surprise-de-mai-2016/
/2016/03/maris-et-femmes-un-peu-de-woody-allen-sur-la-scene-du-theatre-de-paris/
/2016/03/maris-et-femmes-un-peu-de-woody-allen-sur-la-scene-du-theatre-de-paris.html

qui donnent une redirection de ce type

/2015-12-pe-gase-icare-le-spectacle-du-cirque-alexis-gruss/
/2015-12-pe-gase-icare-le-spectacle-du-cirque-alexis-gruss/
/2016-06-un-afterwork-autour-du-cafe-lavazza-au-village-de-roland-garro/
/2016-06-degustabox-le-coffret-culinaire-surprise-de-mai-2016/
/2016-03-maris-et-femmes-un-peu-de-woody-allen-sur-la-scene-du-theatre-/
/2016-03-maris-et-femmes-un-peu-de-woody-allen-sur-la-scene-du-theatre-/


Cette regex (à appliquer en second, car elles capture aussi les précédents, mais ne traite pas les / entre l'année, le moi et le texte)
/([^.]{1,70}).+
et ce remplacement
/$1/
capture 1634 liens pour en faire des redirections comme cela

/ll-hellocoton/
/apple-app-site-associatio/
/article-mozart-opera-rock-une-comedie-musicale-fran-aise-efficace-6256/
/suivez-le-blog-de-lili-sur-les-reseaux-sociaux-twitter-facebook-instag/
/2015-11-cocktails-et-burgers-a-l-honneur-au-pub-saint-michel/
/2015-01-carnet-de-voyage-six-idees-de-visite-a-porto/nul/
/apple-touch-icon/
/apple-touch-icon-precomposed/
/apple-touch-icon-152x152/
/apple-touch-icon-152x152-precomposed/
/2014-09-le-chateau-de-vaux-le-vicomte-de-jour-et-de-nuit-aux-chandelle/
//2014-09-le-chateau-de-vaux-le-vicomte-de-jour-et-de-nuit-aux-chandell/
/2015-06-le-pas-sage-esprit-bistrot-et-plats-colores-dans-un-passage-pa/
/article-amsterdam-gourmand-quelques-adresses-sur-place-ou-a-emporter-8/
/article-amsterdam-gourmand-bagels-beans-pour-le-the-et-le-petit-dejeun/
/templates/system/css/system/
/admin/images/cal_date_over/
/2016-05-un-the-dans-le-jardin-le-salon-de-the-plein-de-charme-du-musee/
/2014-12-deux-belles-expos-a-paris-sonia-delaunay-au-mam-et-garry-winog/


Les 5 lignes qui ne sont pas capturés sont

/.com.old
/.asp.bak
/...nvers-restaus-hotel/
/.well-known/
/\"

Qui sont je pense des erreurs d'extraction de ton gros gros fichier.

Essaye ces 2 regex, dans l'ordre et dis moi ce que ça donne.

Bon week-end


PS: j'ai pas réussi à n'en faire qu'une à cause des remplacements
/$1-$2-$3/
donne
/--/
quand la 2eme regex capture la ligne...
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
15 juin 2019 à 22:06
Bonjour,

Merci beaucoup !

J'ai entré l'une des regex puis ai ajouté l'autre mais seule la 2e semble fonctionner une fois dans le plugin Redirection car j'ai eu une nouvelle fois le message qui indique qu'il y a trop de redirections...




J'ai, du coup, réactivé pour le moment :

/(.*).html
/$1

/(\d{4})/(\d{2})/(.*)\/
/$1-$2-$3

/(\d{4})/(\d{2})/(.*)
/$1-$2-$3
== J'ai moins de 404 depuis cet ajout hier matin tôt, même s'il en reste.

Je vais regarder pour l'envoi du fichier mais, comme je l'évoquais, je ne suis pas sûre de savoir faire ce remplacement. Personne ne saurait m'aider si je faisais une mauvaise manip dans ma base de données...

Bonne soirée !
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
15 juin 2019 à 22:53
Ha oui, on avait vu que le \/ ne marche pas dans ton blog, alors que regex101.com le demande (à noter que regexstorm s'en fout)

Essaye donc cela en 1
/(\d{4})/(\d{2})/([^.]{1,62}).+
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
Modifié le 15 juin 2019 à 23:40
Merci. J'ai laissé les deux expressions 30 minutes et ai presque cru que c'était bon (la regex a traité deux redirections) mais ai vu, une prenant mon portable : "Safari ne peut pas ouvrir la page car il y a eu trop de redirections"...

Ceci dit, ça me dit qu'il y a 909 vues de la regex :
/([^.]{1,70}).+
/$1/
Ca laisse penser que c'est beaucoup trop ;-)
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
16 juin 2019 à 10:06
Bonjour,

il est bien possible que ma méconnaissance (et c'est peu dire) de wordpress soit à la manoeuvre.

J'ai bêtement cherché à écrire 1, puis 2 regex qui couvriraient 100% de tes adresses, y compris celles qui n'ont pas besoin d'être redirigées....

Je vais donc essayer l'inverser, ne capturer que les liens ayant besoin d'être redirigés.
A brûle pourpoint, je pense qu'il faudra 2 ou 4 regex pour remplacer les 2 que je t'ai proposées.

Mais en parallèle, pour limiter de prochaines erreurs je vais me documenter un peu sur les redirection wordpress. Est-ce l'extension décrite là https://wpmarmite.com/redirection-wordpress/ que tu utilises?


Je n'aurais pas le temps de m'y atteler dans la journée.
Peut-être ce soir.

Bonne journée.
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
16 juin 2019 à 10:47
Bonjour,

Merci. Wordpress et ses extensions sont tout un monde dirait-on...

J'utilise "Redirection" : https://fr.wordpress.org/plugins/redirection/

Je n'avais pas pris conscience avant nos derniers échanges qu'il y avait une sorte de priorité selon l'ordre dans lequel on ajoutait les regex. J'ai remis une formule qui semblait ne plus marcher en premier et cela semble l'avoir rendue de nouveau opérante.

En dehors des très nombreuses exceptions que j'ai déjà renseignées, celles qui sont en ce moment activées, de la plus récente à la plus ancienne :

/(\d{4})/(\d{2})/(.*)
/$1-$2-$3
300 fois (nombre d'utilisations hier en fin de soirée)
329 fois (nombre d'utilisations ce matin)

/(.*).html
/$1

/(\d{4})/(\d{2})/(.*)\/
/$1-$2-$3/
651 fois
669 fois

/(\d{4})/(\d{2})/(.*)\.html
/$1-$2-$3/
23 400 fois
23470 fois

Depuis hier soir, les erreurs 404 semblent porter plutôt sur les adresses longues, les adresses avec accents ou toujours des choses désinstallées (fichiers liés à mes anciennes newsletters, etc. : il ne faut sans doute pas s'en occuper).

Il faut que je continue à me documenter sur les différents problèmes Wordpress car une chute de 40 à 50% en un mois reste assez troublante... Mystère mystère.

Bonne journée et encore merci !
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
16 juin 2019 à 12:03
Je n'avais pas pris conscience avant nos derniers échanges qu'il y avait une sorte de priorité selon l'ordre dans lequel on ajoutait les regex. J'ai remis une formule qui semblait ne plus marcher en premier et cela semble l'avoir rendue de nouveau opérante.


Cela semble assez logique, du point de vue du "programmeur", si le lien est intercepté par une regex il est traité par celle-ci et ne passe pas à la suivante.

du coup /(\d{4})/(\d{2})/(.*) intercepte tout ce qui serait pris par /(\d{4})/(\d{2})/(.*)\.html
la partie commune (la première regex entière), veut dire
  • un /
  • 4 chiffres
  • un /
  • 2 chiffres
  • n'importe quel caractère, un nombre de fois indéterminée


la 2eme regex, ajoute
  • .html à la fin


Si un lien finit par .html il est intercepté par la première regex, dans ce cas, le .html est conservé, or il faut l'enlever.
Mettre /(\d{4})/(\d{2})/(.*) avant /(\d{4})/(\d{2})/(.*)\.html bloque de fait la seconde.

En plus, il semble acquis (j'ai fait quelques tests à la main sur ton blog, et ma femme a trouvé ça louche que je visite un site de ce genre ;) ), que le lien final ne doit pas faire plus de 70 caractères, or ces 2 regex ne prennent pas ça en compte.

Bref, j'essaye de m'y remettre en soirée.
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
16 juin 2019 à 19:39
En effet, cela semble logique. Parfois, quand on ne connaît pas bien quelque chose, on en perdrait presque le bon sens !

L'anecdote sur ta femme m'a fait rire ;-)

Seulement pour info, sur Google Search Console, j'ai vu un graphique qui correspond aux pages exclues à cause des redirections, qui passe de 3500 à 6150 pages à la date à partir de laquelle les consultations ont commencé à plonger.



Bon début de soirée
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
16 juin 2019 à 22:26
Alors en premier position, je te propose
/(\d{4})/(\d{2})/([^./]{1,62}).*
et
/$1-$2-$3/

Comme le montre cet exemple (clique sur Contexte pour voir le remplacement), elle intercepte les liens qui
  • commencent par 4 chiffres / 2 chiffres /
  • puis jusqu'à 62 caractères saut le . (pour s'arrêter avant .html) ou / (pour éviter d'en avoir 2 à la fin du lien redirigé)
  • finit par n'importe quoi.


en 2eme position, les lien de moins de 70 caractères finissant par .html
/([^./]{1,69})\.html
et
/$1/

exemple

et en 3eme position les liens de plus de 70 caractère (peut importe la fin, sauf si le 71eme caractère est /)
/([^./]{70})[^/]+
et
/$1/

exemple
Cette fois, dans l'onglet Context, le saut de ligne des lignes interceptées est supprimée, mais ça ne devrait pas avoir d'influence pour toi, puisque dans un lien, y a pas de saut de ligne.
Au cas où, voici dans ce dernier exemple, la même qui prend en compte le saut de ligne

Par contre, gérer les accents ça se complique, car n'importe lequel des cas traiter par l'une des 3 regex peut contenir un accent, et n'importe où en plus
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
16 juin 2019 à 23:29
Merci !

Vers 21h40, j'ai renseigné les redirections :

/(\d{4})/(\d{2})/([^./]{1,62}).*
/$1-$2-$3/
Semble bien fonctionner : utilisé déjà 7 fois. Par exemple : /2014/09/redecouvrir-le-chateau-de-versailles.html

/([^./]{1,69})\.html
/$1/
Testé manuellement avec /2016-01-ah-le-grand-homme-au-theatre-de-l-atelier.html // Pas encore utilisé sans mon intervention.

/([^./]{70})[^/]+
/$1/
Je l'ai désactivée car j'ai l'impression qu'elle "contrarie" les adresses récentes (celles créées sous Wordpress sans reformatage, depuis 3 ans).
46 utilisations après 20 minutes : cela passe en boucle :
/nouvelles-gourmandes-concours-alter-eco-reblochon-benoit-castel-picadeli/
/nouvelles-gourmandes-concours-alter-eco-reblochon-benoit-castel-picade//
Il s'agit d'un article récent, qui peut avoir un URL de la longueur déterminée au moment de la publication de l'article.

Pour mémo (aussi pour que je m'y retrouve) n'utilisant pas cette regex :
/2015-06-les-femmes-a-l-honneur-au-bar-du-saint-james-paris-pour-l-ete-2015/
ne devient pas :
/2015-06-les-femmes-a-l-honneur-au-bar-du-saint-james-paris-pour-l-ete/




Les accents pourront finir par se gérer manuellement ;-)

Merci encore !
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
17 juin 2019 à 07:42
Ha zut nouvelles-gourmandes-concours-alter-eco-reblochon-benoit-castel-picadeli fait 72 caractères....
et 2015-06-les-femmes-a-l-honneur-au-bar-du-saint-james-paris-pour-l-ete en fait 69, par contre 2015-06-les-femmes-a-l-honneur-au-bar-du-saint-james-paris-pour-l-ete- fonctionne aussi.

Bon est ce que tous les lien d'avant wordpress ont l'année et le moi et tous les liens d'après ne l'ont plus?

Y'a un truc qui m'ennuie aussi dans ta capture, c'est le /feed que j'ai entouré.
Tu en as beaucoup des liens avec "un sous dossier"?
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
17 juin 2019 à 10:35
Quelle casse-tête cette affaire. Gloups !

Depuis l'été 2016 et mon arrivée sous Wordpress, il n'y a en effet plus de norme sur la longueur des URLs.

Concernant les liens avec sous-dossiers, dans mes 404, j'ai du :

/tag/journees-du-patrimoine/page/4/
/tag/institut-de-beaute/page/2/
/tag/autriche/page/2/

/wp-content/plugins/downloads-manager/img/unlock.gif
/wp-content/plugins/category-page-icons/css/menu.css (Mon thème a eu une nouvelle version il y a quelques mois, c'est peut-être lié)
/apple-touch-icon-120x120-precomposed.png

Je vois quelques 404 de type /2018-08- (avec rien derrière) (mais qui n'apparaissent pas dans le journal des redirections, cela vient donc probablement d'ailleurs).

Avant Wordpress, les URLs qui ne contiennent pas l'année et le mois sont sous la forme /article-baratin-chiffres.html (ou htm d'après les 404... ?).
Exemples :
/article-amsterdam-vert-begijnhof-le-beguinage-un-ecrin-paisible-et-le-jardin-botanique-83576950.htm
/article-l-empiafee-une-bonne-tranche-de-rire-pour-une-bonne-soiree-46664080.html
/article-le-guide-de-paris-branche-en-metro-de-bonnes-adresses-a-foison-111803536.html
/article-amsterdam-vert-begijnhof-le-beguinage-un-ecrin-paisible-et-le-jardin-botanique-83576950.htm

Over-blog avait généré, de mémoire, 3 types d'URLs en 8 ans et sans possibilité de renommage :-/

Depuis hier soir :

- La regex suivante a été utilisée 106 fois
/(\d{4})/(\d{2})/([^./]{1,62}).*
/$1-$2-$3/

- La regex suivante a été utilisée 15 fois
/([^./]{1,69})\.html
/$1/

- J'ai donc vite désactivé :
/([^./]{70})[^/]+
/$1/

Depuis, les types de 404
retrouvés, a priori :

- /année-mois-baratin
/2015-06-un-cours-de-cuisine-a-l-atelier-guy-martin-autour-des-recettes-du-grand-vefour

- /année-mois-baratin/
/2015-05-un-diner-a-bord-du-galion-delices-dans-l-assiette-et-soleil-couchant-sur-la-seine/

- /article-baratin-chiffres.htm
/article-amsterdam-vert-begijnhof-le-beguinage-un-ecrin-paisible-et-le-jardin-botanique-83576950.htm

- /article-baratin-chiffres.html
/article-l-empiafee-une-bonne-tranche-de-rire-pour-une-bonne-soiree-46664080.html

- catégories ou tags
/tag/journees-du-patrimoine/page/4/

+ accents (à faire manuellement quand le reste sera stabilisé) & autres adresses liées à des plugins désinstallés

Bonne journée !
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
17 juin 2019 à 22:12
alors je pense qu'il faut modifier celle là
/([^./]{1,69})\.html
/$1/

pour qu'elle intègre les htm et les adresses plus longues
/([^./]{1,70}).*\.htm



les adresses de ce type
/tag/journees-du-patrimoine/page/4/

sont sensées devenir quoi après?


Pour que tes redirections manuelles soient prises en compte, il faut les mettre avant les regex (les accents par exemple)
0
AurelieLi Messages postés 80 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 20 juillet 2020
Modifié le 17 juin 2019 à 22:38
Bonsoir,

Merci. Je teste la regex modifiée, que je viens d'ajouter, et te dis.

En fait, je viens de regarder et les pages suivantes n'existent en réalité pas (il n'y a rien en page 2 ou en page 4... Je ne comprends pas pourquoi ces adresses qui ne correspondent à rien (les pages 1 voire 2 et 3 existent) finissent dans les 404. Laissons-les tomber...)
/tag/journees-du-patrimoine/page/4/
/tag/institut-de-beaute/page/2/
/tag/autriche/page/2/
0