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

A voir également:Expressions régulières : mauvais renvois :-/Expressions régulières php - Articles Expressions régulières javascript - Articles Excel 2010 expressions régulières ✓ - Forum - Excel Expressions régulières "ne contient pas ..." ✓ - Forum - Programmation Difficultés à créer des expressions régulières ✓ - Forum - Programmation

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://www.commentcamarche.net/forum/affich-33736206-difficultes-a-creer-des-expressions-regulieres#p33737978 (2016)
https://www.commentcamarche.net/forum/affich-35756011-redirections-sous-wordpress-creation-d-expressions-regulieres
https://www.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

Forum

A voir également:Expressions régulières : mauvais renvois :-/Expressions régulières php - Articles Expressions régulières javascript - Articles Excel 2010 expressions régulières ✓ - Forum - Excel Expressions régulières "ne contient pas ..." ✓ - Forum - Programmation Difficultés à créer des expressions régulières ✓ - Forum - Programmation

Web: www.shapebootstrap.net

8 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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?

Reply
réponses:
  • auteur

    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/exemple-article/
    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply
réponses:
  • auteur

  • auteur

    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 ?

  • auteur

    c'est cette règle \/(\w|\-)+\.html qui te prend la dernière lettre.

  • auteur

    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/

  • auteur

    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

  • auteur

    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 !

  • auteur

    PS : curieux, j'ai un plantage de l'extension Google analytics depuis que j'ai fait ce dernier test ("Quelque chose s’est mal passé, vérifier Erreurs & débogage ou autoriser l’extension".) Même en le supprimant et en le réactivant, ça ne va pas :-/

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.

Reply
réponses:
  • auteur

    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 ;-)

  • auteur

    Bonjour, précision utile du matin : le problème Google Analytics est résolu :-)

  • auteur

    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 !

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.

Reply
réponses:
  • auteur

  • auteur

    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 !

  • auteur

    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 :-)

  • auteur

    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

  • auteur

    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

  • auteur

    Tu peux réessayer maintenant

  • auteur

    Merci, lien envoyé !

  • auteur

    Bonjour,

    Merci beaucoup.

    Je réponds ici car je n'arrive pas à le faire à la suite de la conversation parallèle... ("problème d'enregistrement")

    Il est possible que, lorsque la 2e ligne fonctionne, c'est parce que j'ai renseigné pas mal de choses via le plugin Redirection.

    L'idée est-elle d'importer ensuite ce fichier dans ma base de données ? Cela me fait un peu peur car je n'ai pas les compétences techniques pour gérer la suite d'un éventuel problème d'import et ne suis pas très familière de ce type de manips... Avoir une 3e expression régulière dans l'extension ne serait-il pas plus sûr pour une novice ?

    Les stats du blog continuent de diminuer lentement mais sûrement, je me demande si cette histoire de redirections est la seule responsable.

    Merci encore

    Bon week-end ! (Ma sœur se marie, je ne serai pas très présente non plus ;-))

  • auteur

    Je cherche à écrire une regex qui marcherait pour toutes tes redirections.


    Bon mariage

  • auteur

    Top :-)
    Merci et bon week-end !

  • auteur

    Bonjour,

    J'espère ne pas vous avoir noyé sous un problème insoluble...

    Mes erreurs 404 cette semaine sont beaucoup sur ce modèle :
    /2014/10/tous-au-restaurant-un-diner-a-la-brasserie-julien
    /2015/12/fetez-noel-2015-avec-la-patisserie-des-reves
    Sans doute à cause de :
    /(.*).html
    /$1
    (qui marche sur pas mal d'autres cas pourtant...).

    Bonne journée et à bientôt !

  • auteur

    Bonsoir

    non, c'est mon boulot et ma vie perso qui me noient de choses à faire.
    Je n'ai pas pris le temps de regarder ton problème cette semaine.
    Peut-être ce soir, ou demain.

  • auteur

    Bonjour,
    Pas de problème :-)
    Pour limiter les 404, je viens de tester l'ajout de la regex suivante :
    /(\d{4})/(\d{2})/(.*) (type d'adresse généré par une autre regex...)
    /$1-$2-$3
    Elle marche sur les URLs pas trop longues, cela pourra dépanner :-)
    J'aurai peu d'accès à un ordinateur jusqu'à demain samedi en soirée.
    Bonne journée :-)

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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...

Reply
réponses:
  • auteur

    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 !

  • auteur

    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}).+

  • auteur

    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 ;-)

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.

Reply
réponses:
  • auteur

    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 !

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.

Reply
réponses:
  • auteur

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply
réponses:
  • auteur

  • auteur

    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 !

  • auteur

    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"?

  • auteur

    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 !

  • auteur

    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)

  • auteur

    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/

  • auteur

    Bonjour,

    Le petit point du matin :-)

    C'est bien bon pour les htm et html :-) Merci !

    Les 404 de la nuit sont donc les /annee-mois-baratin/ et les /article-baratin/. Ces deux modèles sont forcément antérieurs à 2016 mais ont en commun avec les plus récentes qu'elles ne comportent que des tirets.

    /2014-06-la-coupe-du-monde-s-invite-chez-frogburger-j-ai-teste-et-approuve-le-rio-burger/
    /2015-07-la-cuisine-de-l-e7-un-dejeuner-au-restaurant-de-l-hotel-edouard-7-pres-de-l-opera/
    /2014-03-une-soirée-ping-pong-pour-le-lancement-de-ball-in-box-par-fle/
    /2015-09-le-lancement-du-nouveau-smartphone-samsung-galaxy-s6-edge-a-la-piscine-molitor/
    /article-sicile-le-decompte-des-jours-avant-mon-depart-a-commence-78383277/

    Je retrouve aussi des curiosités de ce type mais il ne doit pas falloir s'en préoccuper :
    /2010-05-30/
    /2012-05-

    J'ai mis les regex en dernier, après les redirections simples (il y en a beaucoup, j'aurai sans doute un tri à faire car certaines exceptions venaient peut-être du fait que j'avais des problèmes de regex.

    Bonne journée !

  • auteur

    Bonsoir

    /2014-03-une-soirée-ping-pong-pour-le-lancement-de-ball-in-box-par-fle/ a un accent, donc dans un premier temps, il faudrait la gérer à la main.

    /2014-06-la-coupe-du-monde-s-invite-chez-frogburger-j-ai-teste-et-approuve-le-rio-burger/
    /2015-07-la-cuisine-de-l-e7-un-dejeuner-au-restaurant-de-l-hotel-edouard-7-pres-de-l-opera/
    /2015-09-le-lancement-du-nouveau-smartphone-samsung-galaxy-s6-edge-a-la-piscine-molitor/

    font toutes les 3 plus de 70 caractères, je pourrais adapter la 1ere regex pour qu'elle capte aussi ces liens, mais elle prendrait aussi tous ceux de moins de 70 caractères, je te propose donc une regex pour ce format, idem pour article-trucmuche

    /(\d{4}-\d{2}-[^./]{62}).+
    /$1/

    /(article-[^./]{62}).+
    /$1/


    Peux tu savoir si
    /2010-05-30/
    /2012-05-
    sont le résultat d'une regex, parce que malheureusement, ça pourrait...

  • auteur

    Bonsoir,

    Merci.

    Je ne vois pas de trace de ces adresses tronquées dans le journal des redirections. D'ailleurs, /2017-06- (que je vois dans les 404) ne devrait même pas exister puisque j'ai migré à l'été 2016 et ne me suis jamais amusée à mettre des dates dans les URLs de moi-même. Je surveille cette affaire.

    J'ai ajouté momentanément les deux nouvelles regex mais les adresses semblent boucler sur elles-mêmes dans le journal des redirections...



  • auteur

    tu peux me les copier coller s'il te plait

  • auteur

    Les adresses qui ont tourné en boucle :

    11 fois en 1 minute :
    /article-concours-gagnez-la-brosse-a-dents-electrique-professional-care/
    /article-concours-gagnez-la-brosse-a-dents-electrique-professional-care/
    == N'existait pas en redirection manuelle

    10 fois la même minute :
    /2015-09-lily-bard-tomes-2-et-3-fin-d-un-champion-et-sombre-celebration/
    /2015-09-lily-bard-tomes-2-et-3-fin-d-un-champion-et-sombre-celebration/
    == Je vois que celle-ci existait déjà en redirection à la main (parmi les 500...)

    18 fois la même minute :
    /article-journees-du-patrimoine-visite-guidee-de-la-comedie-fran-aise-5/
    /article-journees-du-patrimoine-visite-guidee-de-la-comedie-fran-aise-5/
    == Je vois que celle-ci existait déjà en redirection à la main (située avant la regex aussi)

  • auteur

    Bon, ça fait 70 caractères....
    Tu sais quelles sont les bonnes adresses ?

  • auteur

    En fait, ce sont les bonnes adresses... C'est au niveau du journal que ça boucle en cascade, comme lorsque j'avais le message d'erreur qui disait qu'il y avait trop de redirections.

    Je réactive les deux dernières regex pour voir si ça continue à boucler...

    /(\d{4}-\d{2}-[^./]{62}).+
    /$1/

    /(article-[^./]{62}).+
    /$1/

    /([^./]{1,70}).*\.htm
    /$1/

    /(\d{4})/(\d{2})/([^./]{1,62}).*
    /$1-$2-$3/

  • auteur

    Après 20 nouvelles minutes de test, la bonne nouvelle malgré tout est qu'il y a 0 erreur 404 depuis 50 minutes...

    J'ai eu de nouveau le message d'erreur en front ("vous avez été redirigé à de trop nombreuses reprises" suivi de l'affichage de l'article après un petit moment).

    Nouveaux bouclages sur des adresses qui n'avaient pas déjà de redirections :

    /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-chandelle/

    /article-happiness-therapy-une-comedie-sentimentalo-dramatique-original/
    /article-happiness-therapy-une-comedie-sentimentalo-dramatique-original/

    /article-cloclo-un-bon-film-sur-un-personnage-bien-peu-aimable-10194071/
    /article-cloclo-un-bon-film-sur-un-personnage-bien-peu-aimable-10194071/

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed