LinkCheck : vérificateur de liens

Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en tâche de fond pour avertir le webmestre dès qu’un liens montre des signes de faiblesse.

Fonctionnement

Le plugin LinkCheck parcoure les objets SPIP pour établir la liste des liens qu’ils contiennent. Les liens trouvés sont enregistrés dans une table de la base de données (spip_linkchecks) et sont reliés à l’objet ou aux objets qui le contiennent par le biais de la table spip_linkchecks_liens.

Une fois les liens listés, le plugin les vérifie un par un en interrogeant l’entête HTTP renvoyé par le serveur hébergeant la page.

La vérification répartis les liens en 4 statuts :

  • Les morts mort :-( : La page ou le document n’existe plus, c’est la fameuse erreur 404, le lien est à retirer ou à corriger de toute urgence.
  • Les liens malades : La fonction de vérification n’arrive pas à obtenir les informations permettant de savoir si le lien est valide, le serveur hébergeant la page est saturé. À vérifier manuellement.
  • Les liens déplacés : Ce sont des liens qui mène bien à la page souhaitée mais qui passe par une redirection . On va retrouver dans cette catégorie les URL raccourcis, les liens , Dans certains cas, il est préférable de remplacer ces liens par leur redirection.
  • Les liens valides : c’est ceux qu’on préfère, ils fonctionnent, rien à faire.

Le plugin linkcheck vérifie des liens collectés de deux façon :

  • Vérification automatique en tâche de fond : Après chaque modifications d’un objet, le plugin enregistre les liens présent dans cet objet, ils seront vérifiés par une tâche de fonds. Si un problème est constaté, le plugin informera le webmestre de la présence d’un lien brisé. Il pourra de cette façon le corriger au plus vite.
  • Vérification intégrale : Il est possible à partir de la page principale du plugin de lancer une vérification de tous les liens, Cette opération peut prendre plus ou moins de temps suivant le nombre de liens présents sur votre site.

Mode d’emploi

Une fois le plugin installé, un lien « Vérificateur de liens » est ajouté dans le menu « Maintenance ». En suivant ce lien, vous arrivez sur cette page :

Si c’est votre première utilisation, il sera offert la possibilité de lancer la recherche des liens. Vous n’avez qu’à cliquer sur le bouton « Commencer la recherche »

Une fois la recherche terminé, la page est réactualisée, vous pouvez consulter l’ensemble des liens présents sur votre site. Il ne sont pas encore vérifier.

Vous pouvez laisser les tâches de fonds faire, elles se chargeront de vérifier de l’ensemble des liens au goutte à goutte. Si vous êtes pressés, vous pouvez lancer une vérification complète en cliquant sur le bouton « Commencer la vérification » ou « poursuivre la vérification ». Il ne vous reste plus dans ce cas qu’à contempler de défilement de la barre de progression, elle vous annonce l’état de vos liens.

Paramétrages

Vous pouvez régler à partir de l’écran de configuration du plugin, la façon dont le plugin vous notifie les anomalies.

  • Vous pouvez activer ou désactiver la barre d’alerte.
  • Vous pouvez activer ou désactiver la notification par email

Le développement de ce plugin a bénéficié du soutien du BRGM, qu’il en soit vivement remercié !

Noms alternatifs possibles :

  • checklinks
  • checklink
  • vérif liens
  • liens vérif

Discussion

30 discussions

  • Très bon plugin, très pratique.
    Merci aux développeurs :)

    Répondre à ce message

  • 1

    Hello !

    Bon ce plugin est franchement génial et accompagne tous mes sites depuis un moment maintenant, merci pour le taff ! :)
    Par contre, il a ponctuellement des remontées en faux-positif malgré plusieurs tests et vérification/correction de ma part des URL (https VS http; avec ou sans www. ; ....)

    2 liens morts au hasard sur un spip 3.2.1 mutualisé, branche stable et à jour :

    • http://www.perdu.com/ : alors que celui là, quand même, il est plutôt du genre immortel ! Vu la config de son serveur sans règles précise de redirection, j’aurais compris un statut « Malade » ou « redirige » mais « mort » ???)
    • https://fontawesome.com/v4.7.0/ : là par contre... serveur OK, toute variante d’url redirige correctement, headers 200 OK ... mais « mort » qd même ... je vois pas ...)

    Une idée ?
    Merci d’avance ;)

    • Ah tiens ? Sur le même site, un nouveau cas à l’instant de faux positif sur un lien interne déclaré « mort », dans un article de documentation rédacteur interne, donc laissé en statut « proposé » et pointant vers https://site.ext/ecrire/?exec=formulaires alors que le plugins est bien installé et actif (et à jour).

      Si ça peut aider je peux sortir des logs ou autre, il faut juste me dire quoi chercher.

      Merci d’avance

      EDIT : après refresh et purge du cache, ce même lien apparaît finalement en « déplacé » mais ne communique aucune url définitive. De mon côté je suis garant du bon formatage du lien et de la bonne réponse du serveur (200).

    Répondre à ce message

  • Bonjour,

    Tout d’abord un grand merci pour ce plugin génial et indispensable !

    Sur un SPIP 3.2.0 avec LinkCheck en 1.4.11, nous rencontrons quelques petits problèmes : dans la liste des liens morts, on se retrouve avec des liens tronqués, notamment des liens vers commons.wikipedia.org, dès lors, a priori, qu’il y a une parenthèse dans l’URL.

    Ainsi, « https://commons.wikimedia.org/wiki/File:Maison_pench%C3%A9e_(Limoges).JPG » est repéré comme mort et apparaît dans la liste comme « https://commons.wikimedia.org/wiki/File:Maison_pench%C3 %A9e_ » et est indiqué comme redirigé « https://commons.wikimedia.org/wiki/File:Maison_pench%C3 %A9e ».
    Idem avec https://commons.wikimedia.org/wiki/File:Uzerche_by_Gustave_Le_Gray_(2).jpg ou https://commons.wikimedia.org/wiki/File:Gargouille_(5).jpg qui se retrouve lié https://commons.wikimedia.org/wiki/File:Gargouille_(1).jpg et à https://commons.wikimedia.org/wiki/File:Gargouille_(4).jpg (dans ces trois derniers cas, LinkCheck n’identifie qu’une URL).

    Un problème également avec un lien mort détecté vers l’URL https://www.youtube.com/channel/UCbDwfR3_zczAT8wi5WEOPiw alors que celle-ci fonctionne parfaitement.

    Autre lien problématique : http://www.gutenberg.org/ebooks/17589 qui reste mort malgré les vérifications manuelles forcées.

    Merci encore et par avance :-)

    Répondre à ce message

  • 8

    Sur un site SPIP
    http://www.planete-sciences.org/astro/
    un lien qui pointe vers un sous fichier du même domaine (mais qui n’est pas SPIP)
    http://www.planete-sciences.org/astro/couleursdetoiles/

    est marqué comme erronée, alors que cela marche parfaitement.

    Si en plus je teste cela sur mon localhost > pas de souci.

    • Salut,

      je me permet de relancer, si vous avez une piste. Sinon il faudra que je trouve du tps pour débuguer cela.

    • Peut être comme @nicod ici, un problème de serveur qui a du mal à se résoudre seul ?

      Chez moi ton lien marche bien

    • A oui c’est très probable. Il y a une manip facile pour vérifier cela ?

    • Tu as accès à une ligne de commande ? sinon je ne sais pas, demande à nicod ;)

    • Malheureusement pas. Merci en tous cas, je vais lui envoyer un mail.

    • Auto syndique toi ?

    • Bon idée. Testée et confirmé que c’est cela le problème. Bon il ne reste plus qu’à demander aux responsables techniques de résoudre ce problème.

    • Le responsable du serveur a changé les réglages. Voilà la cause du problème :

      Il y avait une différence entre l’ip de Listen de apache et la loopback du fichier /etc/hosts. (un reste de la dernière migration je pense)

    Répondre à ce message

  • 2

    Pour info j’ai changé la borne de paquet.xml :
    compatibilite=« [3.0.5 ;3.2.*] »

    et le plugin fonctionne bien en 3.2

    Répondre à ce message

  • 4

    Bonjour,

    Merci pour les dernières mises à jour de ce plugin tout simplement indispensable !
    Nous l’utilisons au BRGM depuis plusieurs années et nous en sommes toujours aussi satisfaits.

    Après l’avoir déployé sur de nouveaux sites dernièrement (au total, une quinzaine de sites BRGM l’utilisent !), je me permets de vous faire quelques retours, qui pourraient éventuellement faire l’objet d’améliorations :

    • Les liens avec un point-virgule sont tronqués.
    • L’affichage des documents « internet », pointant vers une URL externe (ex : une vidéo Youtube), propose 2 fois l’URL vers le document, dans les colonnes « utilisé dans » et « URL ». Il serait pratique que le lien de la colonne « utilisé dans » renvoie vers le formulaire d’édition du document. Cela permettrait de pouvoir aller corriger le lien facilement, sans avoir à rechercher le document en question dans la médiathèque.
    • Les documents internes non publiés, qu’ils soient utilisés dans un article « en cours de rédaction » via une balise , ou uniquement utilisés comme lien , apparaissent comme malades. Le statut « Malade » ne me semble pas vraiment adapté dans ces 2 cas, car les liens publics vers ces documents sont pourtant bien valides. S’il n’est pas possible de les identifier comme liens valides, un statut « Non publié » pourrait être plus approprié.
    • Même s’il y a de moins en moins de faux-positifs, cela pourrait être intéressant de pouvoir modifier manuellement l’état d’un lien afin de rendre valide un lien considéré comme mort (ou malade) par LinkCheck.

    Répondre à ce message

  • 8

    Bonjour, j’ai installé le plugin, mais j’ai toujours « Aucun lien n’a encore été recensé ». J’ai appuyé plusieurs fois sur « Commencer la recherche », sans effet sur la page exec=linkchecks ni sur le fichier CSV, désespérément vide.

    Spip 3.0.26
    Linkcheck 1.4.6
    PHP 5.4.45

    • Après plusieurs jours, je recharge la page et un seul lien (valide) a été trouvé. Il y a clairement un problème, non ?

    • Si le site est chez Free (comme le suggère ton adresse mail), alors c’est normal : l’hébergement gratuit Free empêche les connexions sortantes, donc Linkcheck ne peut rien vérifier d’externe.

      Si ton site n’est pas chez Free, je ne sais pas.

    • Ben non, le site n’est pas chez Free mais chez Phpnet. Je vais l’installer sur un autre site du même serveur pour voir.

    • Bon… mon premier site en est à 14 liens trouvés. Ça fait pas lourd, en une semaine :-)
      Le second n’affiche toujours rien après plusieurs hures et des rechargements de page.

    • Peux tu mettre à jour en 1.4.7, réinitialiser la table avec le bouton adéquat et relancer la recherche de liens ?

    • Peux tu mettre à jour en 1.4.7

      Avec joie , mais où trouver cette version 1.4.7 ? La dernière révision 105398 dit : « Incrément de version : 1.4.6 »…

      PS pour info sur mon site 1, linkcheck en est désormais à 67 liens trouvés (mais ça me paraît très peu) et sur le site 2, toujours aucun lien trouvé après plusieurs jours.

    • Elle devrait être dispo sous peu, le temps de mise à jour des dépots. J’ai l’impression que ton pb est que la recherche de liens à l’installation n’a pas bien fonctionné.

      Avec la version que tu as actuellement, tu devrais déjà réinitialiser la table, relancer la recherche de liens et voir si ce n’était pas juste cela le pb.

    • Avec la nouvelle version, Linkcheck trouve 3245 liens en une vingtaine de secondes, ce qui me paraît cohérent. Merci beaucoup !

    Répondre à ce message

  • 3

    Salut,

    sur un SPIP 3.2 svn, Linkchek n’agit pas du tout, et dans le log mysql je vois plein d’erreurs identiques sur les différentes tables :

    2017-09-08 16:41:26 127.0.0.1 (pid 76968) :Pri:ERREUR : Erreur 1139 de mysql : Got error ’unmatched parentheses at offset 66’ from regexp
    in /Users/nico/Sites/dev12/www/plugins/auto/linkcheck/v1.4.6/action/linkcheck_parcours.php L100 [sql_allfetsel(),action_linkcheck_parcours_dist(),traiter_appels_actions()]

    J’ai testé les requêtes à la mano, ça vient visiblement de celle là :

    REGEXP(’(((http|https|ftp|ftps) ://) ?www\.)|((http|https|ftp|ftps) ://(.*\.) ?))(.*\.)+[a-zA-Z0-9]2,9(/.*) ?)(\’|"| |\.|->|]|,| ;|\s)/ ?’)

    Répondre à ce message

  • 2

    Il doit y avoir un bug dans le forum car mes réponses n’apparaissent pas sous mon post ?
    Je refais la discussion ici. Mon post d’origine :

    Bonjour,
    Merci beaucoup pour ce plugin, mais j’ai des erreurs lorsque j’uploade des images dans les articles depuis que j’ai installé LinckCheck. Apparemment, ça vient bien du plugin (voir la capture d’écran). Je suis sous spip 3.1.
    Vous avez une idée d’où vient le problème ?
    Merci, Joël

    La réponse de kent1 (qui n’apparait pas dans le forum mais que j’ai reçue par mail ??)

    Bonsoir

    Pouvez vous nous dire quels plugins supplémentaires sont installés ? et quels champs extras sont créés ? c’est étrange qu’il cherche ces champs

    Ma réponse (qui n’apparait pas non plus) :

    Bonjour,

    Le plugin qui pose problème est sans doute « Titre de logo » : http://plugins.spip.net/titre_logo.html. Celui-ci ajoute en effet un titre et un descriptif aux logos, et c’est ce qui semble poser problème dans les erreurs des captures d’écran.

    • Du coup j’ai installé le plugin titre de logos

      Je l’ai profondément modifié car il utilisait mal la déclaration d’objet (il déclarait les champs en question pour tout objet).

      Bref.

      J’en ai profité pour corriger un bug dans linkchecks aussi.

      Je te propose de tester les deux dernières versions du plugin et de nous dire si c’est ok

    • Bonjour,
      désolé pour ma réponse tardive : ça semble désormais fonctionner sans problème !
      Merci !

    Répondre à ce message

  • 2

    Bon... je l’ai déjà dis, je le répète : ce plugin est absoluement GE-NIAL ! Encore bravo et merci !

    A l’utilisation en revanche, m’est venue une idée que je ne saurais pas intégrer moi même mais que je soumets ici au cas où :

    peut-on envisager qu’à l’installation du plugin :

    • celui-ci attribue automatiquement à chaque lien qu’il repère un id_alpha_numerique
    • déployés sur toutes les balises <a> qu’il va tester en tant qu’id css

    ce qui permettrait de faire des raccourcis plus efficaces dans ce tableau, directement vers les liens grâce aux ancres ? (cf capture jointe)

    (la méthode est juste celle qui m’a paru la plus logique sur le moment, il y a surement plus rapide/moins lourd pour arriver au même objectif mais je suis resté une burne en peu cheu peu ... :-X )

    A+

    • C’est loin d’être aussi facile malheureusement, je n’ai pas trouvé de pipeline pour m’insérer proprement pour faire cela malheureusement

    • je n’ai pas trouvé de pipeline

      Ça doit être de là que vient l’expression « en France on a pas de pétrole mais on a des idées »... :-p

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 29 septembre 2018