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é
9 discussions
Bonjour,
Je rencontre un bug à l’activation. J’ai bien les dépendances en version demandée mais impossible à activer.
SPIP 3.2.16
PHP 5.6.40
Répondre à ce message
Hello
Plugin indispensable pour éviter d’avoir des liens morts dans ses articles.
Cependant, ce qui serait cool, ce serai d’avoir la possibilité de ne pas prendre en compte
Répondre à ce message
Bonjour,
Après une maj en 4.15, j’ai un problème avec le plugin ’linkcheck ’qui m’affiche un message d’erreur dans l’espace privé :
C’est plus embétant que cela paraît car je ne peux sauvegarder la base sql (‹ table linkcheck manquante ›) ni utiliser ‹ adminer ›
J’ai désinstallé proprement le plugin linkcheck et supprimé la table correspondante dans mysql (plusieurs fois) mais le message d’erreur persiste.
Merci pour votre aide !
Est-ce que par hasard, tu aurais aussi migré la base de données et qu’elle serait en utf8mb4 ?
Voir dans ce cas : https://discuter.spip.net/t/installation-spip-4-0-7-serveur-ssl-page-blanche/162469/3
Répondre à ce message
Salut,
j’ai quelques faux positifs parfois (des liens morts ou malades qui ne le sont pas).
Est-il possible de demander de ne pas traiter certains liens ?
Bonne journée !
Ben
Vous pouvez ignorer ma demande, je vois que la question a déjà été posée ;)
(Comme un imbécile, je n’avais pas regardé...)
Si je résume :
Non, il n’y a pas la possibilité ou alors il faudrait la coder s’il y a des motivé-es.
Répondre à ce message
La version 2.0.3 ne fonctionne pas sous Spip 4.1.
En effet, la fonction
recuperer_entetes()
n’est plus supportée, la doc indique qu’elle doit être remplacée parrecuperer_entetes_complets()
.Il faut donc actualiser le fichier « inc/linkcheck_fcts.php » en ligne 331, en remplaçant :
par
Merci du signalement, la v2.0.4 le corrige.
Répondre à ce message
Ce plugin fonctionne sur un site SPIP 4 (en changeant la borne) mais avec quelques altérations :
il n’est plus possible de cliquer sur l’objet qui contient le lien (cf capture).
Et visuellement (anecdotiquement) les liens de pagination en bas sont en liste : ul.pagination-items > li
Merci
dd
En complément voici le message d’erreur sur la page
ecrire/ ?exec=linkchecks&message=check_ok
1 Filtre lien_objet non défini ../plugins/auto/linkcheck/v1.5.3/prive/objets/liste/linkcheck_detail.html _liens 17
Merci
Bonjour,
En effet, je constate aussi ce comportement.
Une piste pour le corriger ?
La version 2.0.0 du plugin, marqué compatible spip 4.0.0, corrige ce filtre + le souci de pagination.
Super, merci.
Je teste dès que possible
Répondre à ce message
Bonjour, je fais remonter une erreur ici...
Problème avec le bouton « Tout enlever » sur la gestion des documents dans un objet
Lorsque j’essaie d’utiliser le bouton « Tout enlever » dans, j’ai un message d’erreur...
Fatal error : Uncaught Error : Call to undefined function objet_info() in .../plugins/auto/linkcheck/linkcheck_pipelines.php:59 Stack trace : #0.../ecrire/inc/utils.php(199) : linkcheck_post_edition(Array) #1.../tmp/cache/charger_pipelines.php(1433) : minipipe(’linkcheck_post_...’, Array) #2 .../ecrire/inc/utils.php(265) : execute_pipeline_post_edition(Array) #3 .../plugins-dist/medias/action/editer_document.php(263) : pipeline(’post_edition’, Array) #4 .../plugins-dist/medias/action/dissocier_document.php(102) : document_instituer(108959) #5 .../plugins-dist/medias/action/dissocier_document.php(178) : supprimer_lien_document(108959, ’evenement’, 7673, false, false) #6 .../medias/action/dissocier_document.php(65) : dissocier_document(’I/document’, ’evenement’, 7673, false, false) # in .../plugins/auto/linkcheck/linkcheck_pipelines.php on line 59
Spip 3.2 [24473]
Répondre à ce message
Merci pour ce plugin indispensable.
- serait-il possible à l’avenir de mettre un petit bouton à coté d’un « lien déplacé » pour « accepter la redirection » et modifier directement la base spip ?
- serait-il possible de mettre un bouton pour « ignorer définitivement » les faux-positifs pour les liens morts ?
exemples de faux-positifs chez moi : https://borisvs.com ; https://www.sheermedia.co.za/cv ; https://www.xdeep.eu
Si tu te sens de coder ça, n’hésite pas !
je sais programmer des boucles, mais pas ecrire du php ou des instructions sql. Je risque de passer des jours en debug pour des histoires de virgules, ou des exceptions.
En regardant le code du plugin, il faut rajouter une fonction de recherche/remplacer de texte (url) dans des champs textuels. On connait déjà l’url à trouver et celle à remplacer. (peut-etre des histoires d’url_rewriting à vérifier pour les liens internes ?).
Pour « ignorer » une url (faux-positifs), créer un nouveau statut « ignorés » et une tache cron associée à fréquence tres petite .
Ergonomiquement, je rajouterai 2 liens dans la colonne Etat, sous « publier ce lien » : « remplacer ce lien » et « ignorer ».
Tels quels, les liens ignorés peuvent être retrouvés en réinitialisant,
Répondre à ce message
Bonjour, super plug-in, très pratique. Bravo aux développeurs, je l’utilise depuis plus de deux ans.
...mais malheureusement deux bugs gênants :
* lors de la vérification des liens (avec ?exec=linkchecks), pas mal de blocages : obligé de rafraîchir la page et relancer manuellement. Cette fois-ci, il ne passe même plus un certain palier et reste bloqué indéfiniment
* des faux-positifs comme en parlent d’autres personnes ci-dessous : des liens indiqués comme morts alors qu’ils ne le sont pas, ce sont les plus gênants
bonjour ,
il marchait bien ce plugin jusqu’à il y a 3 mois env... et sur tous mes sites il voit des morts là où il y en a pas : on clique sur le lien et il s’affiche, pas de 404 : alors je pense que ce plugin a besoin d’un coup de test et de modif ! merci d’avance.
Je n’ai personnellement aucun problème. Une hypothèse possible serait une modification de la conf serveur qui empecherait celui-ci de contacter d’autres serveurs. Il faudrait essayer en ajoutant un document distant à un article
1) document distant sur un autre domaine
2) document distant sur le même domaine.
Si cela bloque, c’est que le problème se strouve au niveau du serveur.
Bonjour Maieul,
afin de pouvoir savoir ce qui bloque, si c’était le serveur, quel est le port / protocole qui est employé par ce plugin SVP pour pouvoir dire qu’un lien est cassé ?
Car perso, avec la technique que je possède, une page répond en 200 (OK) ou 404 (KO) , ou autre ...c’est simple à priori.
Mon serveur, comme beaucoup ici qui ont le soucis, est capable d’aller lire une page et de capter sa réponse.
merci .
normalement ca fonctionne en http / https sur porte standard (80 / 81).
Il n’y a pas de blocage spécifique sur mon serveur. Au vu du nombre de posts ici sur le sujet, j’ai comme un doute sur l’origine de ce blocage...
100% les liens prétendus morts et affichés répondent parfaitement. N’ayant pas envie d’étaler les liens ici, je ne les mets pas en PJ.
Disons sur un de mes sites https://www.mondomaine.com, il voit comme liens cassés https://www.mondomaine.com et http://www.mondomaine.com, c’est pour dire l’ampleur.
Bah chez moi 0% de liens prétendus morts le sotn effectivement. Donc c’est bien qu’il y a un truc quelque part qui bloque, je ne sais pas où....
Par ailleurs, l’exemple que tu donne est un parfait exemplede ce qui peut etre problèmatique. J’ai régulièrement des serveurs mal configurés qui ne sont pas capable se se pinguer eux même....
Bonsoir,
mais tu as raison ! un ping depuis une machine externe sur www.mondomaine.com répond bien et pas du tout depuis la console linux de mon propre serveur ! Tu vas sans doute râler, mais sais-tu à priori ce que j’ai mal ou pas fait (j’ai accès à tout sur le vps) ? Bind, Network ? merci d’avance.
aucune idée. Le seul cas où j’ai eu cela, les admin m’ont dit
mais j’en sais pas plus.
Bonjour Maïeul,
Eh bien c’était une adresse qui s’était glissée dans iptables ... ;et qui causait ce dérangement plus un autre sur les syndications par Rss ! Ton plugin remarche encore mieux qu’avant ! une vraie merveille. Merci bien de ton soutien et des indications sympathiques et patientes.
William
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 : |