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
Export vers un tableur
Pour une gestion externe des liens morts ou déplacés, on peut souhaiter exporter les résultats vers un fichier tableur. Pour cela on peut passer par phpmyadmin. À cette fin, un lien situé en bas de la liste permet d’exporter la sélection : tous les liens et leur diagnostic, ou seulement les morts, ou les déplacés, etc.
Discussions par date d’activité
39 discussions
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
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
Rebonjour,
je pense que le plugin qui pose problème avec LinckCheck est « Titre de logo » : http://plugins.spip.net/titre_logo.html. Les champs titre_logo et descriptif_logo (qui créent l’erreur SQL) lui sont liés, je pense.
Je t’ai répondu au dessus dans l’autre thread à ce sujet
Répondre à ce message
Bonjour,
J’ai beau désinstaller et réinstaller le plugin (à jour SPIP 3.1.4) j’ai un bug d’affichage (cf doc) :
La liste des liens ne s’affiche pas.
Par contre dans le csv j’ai bien la liste des liens morts et déplacés.
J’ai le cas sur 1 site seulement.
dd
Tu peux refaire un test en mettant à jour, je viens d’envoyer une grosse amélioration normalement
Tout fonctionne !
merci
Répondre à ce message
Bonjour,
Bravo pour ce plugin qui marche très bien sur un site très peuplé, et sur lequel nous trouvons ... plus de 123 liens morts ...
La page linkchecks s’avère très pratique pour faire un premier grand nettoyage mais elle n’est accessible qu’au webmestre, lequel a déjà pas mal de boulot !
Trêve de plaisanterie, un réglage des autorisations (ou la possibilité de les surcharger) serait un plus non négligeable.
Les rédacteurs et administrateurs ont maintenant le droit de voir la page
Les autorisations sont plus pointues et surchargeables depuis la version 1.4.0 d’aujourd’hui
Répondre à ce message
Bonjour,
Je voulais juste signaler qu’en bas de la page du plugin s’affiche :
!-linkchecks.csv" href="../spip.php?page=prive/linkcheck.csv">CSV
Comme s’il manquait quelque part une fermeture de balise.
Enfin, certains liens sont affichés comme malades (tous ceux de Mediapart par exemple), mais on ne peut pas les déclarer comme valides (ils fonctionnent).
Sinon, très utile et très fonctionnel.
Merci,
Salut, la version 1.3.8 devrait corriger ça, cf : http://zone.spip.org/trac/spip-zone/changeset/100883
Merci pour le signalement.
Répondre à ce message
Bonjour,
Est-il possible de ne pas activer les alertes pour les liens déplacés ?
Merci
Je ne comprends pas bien ton problème, pourrais tu être plus précis ?
Dans la version 1.3.5 (http://zone.spip.org/trac/spip-zone/changeset/99802), j’ai limité l’affichage sur chaque page de l’alerte au fait qu’il y ait au moins un lien mort ou un lien malade.
Est ce cela à quoi tu faisais allusion ?
En ce qui me concerne, les liens déplacés ne posent pas de problèmes pour la navigation. Mais l’affichage dans la partie privée de « Il y a des liens invalides dans le contenu de votre site ! » est assez ennuyant car je veux surtout être alerté pour les liens ’morts’ ou ’malades’.
Je suis en train de retravailler tous les liens déplacés bien que ce ne soit pas ma priorité.
Tant que j’y suis, je signale un problème avec les url’s comme celle-ci : « http://www.spfb.brussels »
Elle apparaissait comme « http://www.spfb.brussel ». Le lien était donc tronqué et mentionné comme ’mort’.
J’ai modifié
la ligne 63 dans inc/linkcheck_fcts.php en modifiant
"('|\"| |\.|\->|\]|,|;|\s)(((((http|https|ftp|ftps)://)?www\.)|((http|https|ftp|ftps)://([".$classe_alpha."\-]*\.)?))([".$classe_alpha."0-9\-\+]*\.)+[a-zA-Z0-9]{2,7}(/[".$classe_alpha."=.?&_\-\+\:\,/%#]*)?)('|\"| |\.|\->|\]|,|;|\s)?",
en
"('|\"| |\.|\->|\]|,|;|\s)(((((http|https|ftp|ftps)://)?www\.)|((http|https|ftp|ftps)://([".$classe_alpha."\-]*\.)?))([".$classe_alpha."0-9\-\+]*\.)+[a-zA-Z0-9]{2,8}(/[".$classe_alpha."=.?&_\-\+\:\,/%#]*)?)('|\"| |\.|\->|\]|,|;|\s)?",
et
la ligne dans action/linkcheck_parcours.php en modifiant
'(((https?|ftps?)://)|(((https?|ftps?)://)?[A-Za-z0-9\-]*\.))[A-Za-z0-9\-]+\.[a-zA-Z]{2,4}/?',
en
'(((https?|ftps?)://)|(((https?|ftps?)://)?[A-Za-z0-9\-]*\.))[A-Za-z0-9\-]+\.[a-zA-Z]{2,8}/?',
Je ne sais pas si j’ai bien fait mais ça fonctionne :-/
Hop http://zone.spip.org/trac/spip-zone/changeset/99803 pour les .brussels, la version 1.3.5 corrigeait donc ton problème d’affichage d’alerte normalement, dis moi si ce n’est pas le cas
Ok, dès que le commit est sur la zone, j’essaierai la maj. Merci pour tout le travail, ce que je me devais aussi de souligner ;-)
C’est sur la zone, peut être pas encore en paquet mais disponible via svn normalement
Oui, j’ai essayé mais je ne pouvais plus utiliser le plugin. L’appui sur le bouton ’commencer la recherche’ ne fonctionnait plus :-(
Ah mince, http://zone.spip.org/trac/spip-zone/changeset/99805 devrait corriger, désolé
Ok, tout fonctionne !
Répondre à ce message
Je viens d’installer le plugin, très utile.
Quelques remarques d’un utilisateur qui découvre et pistes de développement :
- [ ] présence du lien sur toutes les pages : ce message pourrait être plus informatif en précisant le nombre de liens
- [ ] bloc des liens trop visible sur les articles (il devrait être dans la marge car il ne s’agit pas d’un contenu éditable)
- [ ] ajout d’un lien vers archive.org sur les articles morts
- [ ] proposer de cliquer soi-même quand on a vérifié un lien OK, pour qu’il soit validé (au moins XX jours) ; [la doc ci-dessus explique qu’il faut checker manuellement mais ensuite on n’a pas moyen de valider qu’un lien a été contrôlé]
- [ ] export CSV (j’ai commité une première version, à finaliser avec generer_url_objet)
- [ ] gestion des autoriser() pas très claire (je n’ai pas réussi à ouvrir le plugin aux rédacteurices)
- [ ] ajout d’un picto lien mort optionnel dans propre() [+ éventuellement lien sur archive.org le cas échéant]
- [ ] vérifier/traiter automagiquement les migrations http⟹https
- [ ] améliorer la détection des liens (ex de bugs : "gazogène.com", ou "lacite.website" sont coupés bizarrement, les urls terminant par une virgule sont aussi coupés)
- [ ] améliorer la découvrabilité du plugin (j’ai cherché en vain avec le mot “checklinks”)
Merci Fil pour ces retours.
N’hésite pas à faire tout ça si tu le peux ;-)
Sur l’ajout d’une indication de lien mort (pipeline pre_propre ?), j’ai pour l’instant un gros doute : il y a trop de faux positifs actuellement.
Pour la « découvrabilité », j’ai rajouté ce nom dans le PS (ainsi que d’autres). N’hésite pas à modifier l’article.
Hello
J’ai pas mal améliorer la validation des liens ces derniers temps
J’ai ajouté un bouton pour revalider les liens manuellement
Tu peux fournir une liste de liens qui ne sont pas bien reconnus ?
Je ne retrouve pas comment j’avais découvert ces liens… sans doute parce que j’en ai corrigé plusieurs (par exemple mis le %xx à la place du è dans gazogène.com)
Un exemple qui pête = http://gallica.bnf.fr/ark:/12148/bpt6k6550067z
J’ai un peu amélioré la détection des liens et tes exemples devraient fonctionner :
Ne pas hésiter à ajouter des exemples relous ici ;)
CF : http://zone.spip.org/trac/spip-zone/changeset/99622
Merci, je mets à jour.
Bonjour,
Le lien suivant
http://www.finistere.gouv.fr/tags/view/Les+dossiers/Conchyliculture
est cassé dans linkcheck ; il devient http://www.finistere.gouv.fr/tags/view/Les
Et sur le même site en SPIP 3.0.24 avec linkcheck 1.3.3 SVN [99622]
le lien https://www.brest.fr est toujours vu comme mort même lorsque je le re-re-reteste manuellement.
La version 1.3.4 devrait régler le problème des « + » dans les Urls
Pour brest.fr, j’ai bien un statut déplacé avec :
https://www.brest.fr/
Redirection
https://www.brest.fr/accueil-3.html/
C’est peut être un problème de ton serveur de liaison de ce site ?
Hello.
Il y a aussi un problème avec les
@
. Exemple : https://www.flickr.com/photos/76018748@N00/1263448315Merci pour ce plugin !
La version 1.3.5 devrait corriger cela :
http://zone.spip.org/trac/spip-zone/changeset/99802
Comment je récupère l’archive complète ?
Bien que les informations ne soient pas à jour (mise à jour automatiquement) sur le zip dans la colonne de droite, celui-ci l’est.
Sinon tu attends un peu pour mettre à jour via la mise à jour automatique des plugins
Ok tout fonctionne !
Répondre à ce message
Une idée qui m’a été soumise par un utilisateur : pour les liens internes pointant vers un contenu non publié (au sens de l’admin de SPIP, pas au sens des squelettes qui pourrait utiliser
{tout}
), avoir un statu spécifique : « Non publié » qui permette de retrouver rapidement les contenus internes pointés par d’autres, valide parce qu’existant, mais donnant quand même une 404 côté public.D’ailleurs, mais c’est un autre débat, ça pourrait être pas mal que SPIP affiche côté public autre chose qu’une erreur 404 dans ce cas (en travaux ?).
un « statut non publié » restreint considérablement la liste des statuts « non publiés » de SPIP.
Par contre, pour répondre à ta question sur les pages 404 : une page 404 par SPIP étant produite lorsque le squelette article.html (ou mot.html) ne renvoie rien, il te suffit de modifier celui-ci pour que les articles « non encore publiés » soient affichés en tant que tels.
Répondre à ce message
Bonjour Kent1
Merci pour toutes ces améliorations.
J’ai des liens internes qui sont classés en mots alors qu’ils sont parfaitement valables.
Par exemple :
[plans formation->mot208]
Sur un site où j’ai installé le plugin, les rédacteurs copient collent les adresses des pages pour faire de liens.
[blah->http://domaine.tld/url_propre]
C’est pas bien mais c’est ce qu’ils font.
Et tous les liens de ce type sont déclarés morts, alors qu’ils répondent bien (status 200).
Bug ?
Par ailleurs, même problème que RealET, un lien
[blah->rub266]
est déclaré mort aussi.Fausse alerte sur les liens internes en url complètes, il semble que le bug vienne du serveur lui même qui ne résoud pas son propre nom de domaine.
Oui c’est ce que je pensais pour le premier problème.
Pour le second, tu peux tester avec la dernière version, elle utilise
objet_test_si_publie()
pour vérifier la publication de l’objet.@RealET de même pour toi et les mots, tester avec la dernière version
@nicod_ : pour ton problème de rédacteur qui copie-colle les liens internes, tu peux utiliser Correction des liens internes.
Bonjour,
Je rebondis sur ce commentaire.
Pourquoi est-ce que ce n’est pas bien de copier/coller un lien qui a déjà publié sur le site ? Ça permet pourtant d’éviter des erreurs de frappe. ou de gagner du temps si on a besoin de recopier un passage entier d’un article contenant des liens.
Tout simplement parce qu’un lien peut être amené à changer, par exemple de domaine et que
[lien->artxx]
marchera toujoursCQFD.
Merci pour cette réponse. c’est une bonne pratique que je vais mettre en œuvre.
Autre raisons en cas d’export vers d’autres format que le HTML, cela permet de mieux gérer les liens internes. De plus SPIP utilise la forme du lien pour intégrer des classes css spécifiques, qui permet éventuellement d’indiquer visuellement si ce lien est interne ou externe.
Merci, ça marche (pour les liens internes).
Répondre à ce message
Bonjour,
Testé sur plusieurs sites en 3.1.1 : les adresses de sites qui comportent des - (tirets) sont considérés comme morts (à tort).
dd
Est ce toujours le cas ? si oui, peux tu me donner un exemple précis ?
Hello,
Non ce cas semble définitivement résolu !
Merci
Répondre à ce message
Bonjour Kent1,
Une idée d’amélioration : dans le cas des redirections, un bouton pour actualiser automatiquement le contenu là où c’est utilisé pour mettre à jour le lien avec la nouvelle adresse.
Un piège : un simple rechercher/remplacer pourrait planter dans le cas où le lien existerait dans sa version telle qu’affichée, et qu’il y aurait un autre lien contenant la chaine du premier lien + d’autre caractères autour dans le même article.
Exemple :
Tu peux rajouter cela dans le TODO.md
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |