Script PHP de test des liens sur une page Web
Link Checker parcourt toutes les pages d'un site et détecte les liens brisés et les redirections.
Le testeur de liens brisés est un outil indispensable à l'entretien d'un site, vis à vis des utilisateurs et des moteurs de recherche. Il convient de supprimer tous les liens brisés ainsi que de mettre à jour les redirections, qu'elles soient externes ou internes au site, pour la bonne image du site, et pour un meilleur positionnement.
Ce programme est une alternative au programme Xenu, il présente l'avantage
de regrouper les résultats par pages testées, ce qui facilite l'édition, et il est portable.
Par rapport au valideur en ligne du W3C il présente l'avantage de ne
pas bloquer sur certaines pages.
En outre ce programme open source est facile à modifier grâce au code source Scriptol ou PHP. Il fonctionne avec PHP 5 sur quasiment tous les systèmes d'exploitation et modèles d'ordinateurs.
Une version de Link Checker avec interface utilisateur graphique est aussi disponible. Elle est plus difficile à installer mais plus facile à utiliser.
Commandes et utilisation
Le script en ligne de commande peut être exécuté par le compilateur Scriptol PHP:
solp linche [options] page
ou directement par l'interpréteur PHP 5:
php linche.php [options] page
La page est une URL complète de la forme:
https://www.example.com/index.php
Les options:
-r recursif, suivre les liens internes. Par défaut seule la page est testée.
-s liste courte (short) affiche seulement les liens brisés et les liens sur des pages redirigées, sur le site.
-f accéléré (fast), en réduisant l'attente du serveur. Par défaut 5 secondes, on peut définir le délai en ajoutant une valeur après -f.
-v verbeux, affiche tous les liens testé, avec le code d'en-tête trouvé.
Par défaut affiche seulement les erreurs.
-q quiet, silencieux, n'affiche rien.
Le programme produit un fichier nommé links.log qui reprend tous les résultats et que l'on sauvera sous un autre nom si on veut le conserver.
Les résultats fournis par le script sont perfectibles. Quelque fois un lien est signalé "broken" alors que la page est accessible avec le navigateur. Cela vient d'un temps de réponse trop long, ou du serveur. Dans ce cas il suffit d'ignorer le résultat.
Messages d'erreur et actions à accomplir
Lorsque le script tente d'accéder à une page, le serveur peut retourner différent code selon le status de la page. Celle-ci peut être redirigée soit par le fichier .htaccess ou par un script PHP, elle peut être manquante.
200 OK. Page trouvée.
301 Redirect permanent. La page est redirigée de façon permanente. Le lien doit être modifié.
400 Bad request. Syntaxe de la requête non comprise par le serveur.
401 Unauthorized. Accès refusé.
403 Forbidden. Le serveur refuse l'accès au script.
404 Page not found. Lien brisé.
500 Internal server error. Problème sur le serveur.
Noter que la plupart du temps, le programme affiche un message à la place du code HTTP:
OK Correspond à 200.
Bad URL Problème avec le serveur. Essayer plus tard ou supprimer le lien.
Broken. Code 404 de lien brisé, le supprimer ou rechercher la page.
Redirect. Correspond à 301, mettre le lien à jour.
De ces divers codes, autres que le code OK on ne tiendra pas compte tant que la page est accessible, sauf les redirections permanentes qui doivent être mises à jour.
Pour la liste complète des codes et leur signification, voir le document Code HTTP.
Avec l'option -s, seuls sont pris en compte les codes:
404 Lien brisé.
301 Lorsque la page redirigée se trouve sur le site même.
Versions
- 1.5 Février 2017. Prise en charge des pages en HTTPS.
- 1.4 Février 2012. Les messages d'erreurs 302 (redirection temporaire) ne sont plus affichés pour réduire le listing, et traités comme 200 OK.
- 1.3 Avril 2011. Ajouté l'option -f. Ajouté des exceptions pour stopper les messages du système et rendre l'affichage plus clair.
- 1.2. Avril 2011. Ajouté l'option -s.
- 1.0. Première version en 2008.
Obtenir le programme et licence
Ce link checker est sous licence GNU GPL 2.0. Pour pouvez l'utiliser gratuitement
et librement. Si vous distribuez l'archive, vous devez conserver le copyright
en tête du code source Scriptol et PHP.
Les modifications et améliorations éventuelles du code doivent
être fournies sous forme de code open source Scriptol et PHP, même
si vous utilisez le programme modifié en ligne.
Si PHP n'est pas installé, il faut télécharger l'interpréteur
en version 5 sur php.net.
- Télécharger l'archive au format zip,
- la décompresser,
- ouvrir une fenêtre de ligne de commande et
- exécuter le programme dans la fenêtre selon la commande donnée plus haut.
Script gratuit sous licence GNU GPL 2.0
Voir aussi...
Unredir
Pour un site statique uniquement, teste les liens brisés et les redirections. Dans le second cas il remplace l'URL par sa nouvelle adresse.