Un error 404 es un tipo de fallo frecuente (por no decir el que más) y puede venir ocasionado por muchos motivos: fallo a la hora de realizar un enlace, un fallo de desarrollo, hemos cambiado un contenido y hemos olvidado modificar el nombre, etc.
Es importante chequear antes de poner en beta o producción una página web la existencia de fallos de enlazado y a lo largo de toda la vida de un desarrollo. Podemos incluso realizar dicha tarea periódicamente para chequear el buen estado de nuestros enlaces.
Existen muchas herramientas en Windows y OSX para detectar la existencia de estos fallos. En Linux como somos más prácticos preferimos utilizar las que ya nos ofrece el propio sistema, como la utilidad wget.
Existen cientos de páginas en donde se explica cómo utilizar wget, pero de igual modo no vendría mal que le echaras un vistazo a la documentación con man wget.
El script
check404.sh
#!/bin/bash wget --spider -o tmp.log -e robots=off -r -nd -p $1 grep -B 3 ' 404 ' tmp.log rm tmp.log |
Básicamente lo que hace el script es activar el modo «spider» de wget
para poder recorrer (como si fuera por ejemplo el robot de Google) completamente la profundidad de la URL que le pasemos como parámetro. Además le especificamos claramente que ignore el robots.txt y no guarde absolutamente ningún fichero ni directorio.
La siguiente linea simplemente rastrea el fichero de log para encontrar la cadena ‘ 404 ‘ y volcar por pantalla sólo los errores 404. Como veis es muy sencillo modificarlo para añadir que chequee más errores, redirecciones, etc.
Por ejemplo, si quisiera obtener un fichero de log, sólo con los errores de rastreo en esta página para analizarlos mas despacio podría utilizarlo de la siguiente manera:
check404.sh https://oscargascon.es > errores.log |
El testeo de los errores 404 no puede faltar en tu batería de pruebas antes de poner una página en funcionamiento.
Fuentes
Simple way to find broken links with Wget
Autor:
Última actualización:
De acuerdo con lo dispuesto en el Reglamento (UE) 2016/679 de 27 de abril de 2016, consiento que mis datos sean tratados bajo la responsabilidad de Oscar Gascón Arjol para recibir respuesta a consultas. publicación de comentarios del blog y que las conserve mientras haya un interés mutuo para ello. Me doy por informado que tengo derecho a revocar este consentimiento en cualquier momento y a ejercer los de acceso, rectificación, portabilidad y supresión de mis datos y los de limitación y oposición al tratamiento dirigiéndome por email a me@oscargascon.es. También estoy informado de que puedo reclamar ante la autoridad de control a www.agpd.es.