Muchas veces,
hemos visto como en algunos sitios
cuando requerimos un archivo o
pagina no existente nos muestran
una página personalizada de error,
y no la típica "404 documento no
encontrado". En este artículo,
explicaré como hacerlo en nuestros
sitios y sacar provecho de esta
personalización.
Introducción
Nota:
Nuestros ejemplos estarán
basados y aplicados sobre un
servidor Apache, pero son
perfectamente extensibles a otros
webservers. Además, los errores
solos serán mostrados en enlaces
dentro del mismo sitio.
Para empezar tendremos que
configurar el Apache para que
cuando ocurra un error 404
nos redirija a nuestro script.
Para hacer esto modificamos el
archivo .htaccess
agregándole o modificando la
siguiente línea:
ErrorDocument 404 /path/mi404.php
En caso de que quieran aplicar
esto para otros errores el formato
es el siguiente:
ErrorDocument nroError
path_al_archivo
Una vez configurado nuestro
archivo .htaccess crearemos la
página a la cual será
redireccionado cuando ocurra este
tipo de error 404.
Crearemos una página llamada
mi404.php e insertaremos este
código en ella.
 |
Partes modificables de
este código:
El texto de información que mostrará
al visitante lo puedes modificar en
estas líneas:
El documento:
<b><?=$_SERVER['REQUEST_URI'];?></b>
no ha sido
encontrado en nuestro servidor.<br>
Por favor, bla,
bla, bla. 1
|
Entre las
variables que tenemos disponibles
en apache desde PHP esta
$_SERVER['REQUEST_URI']
(o
$HTTP_SERVER_VARS['REQUEST_URI']
en php 4.0.x y anteriores)
la cual nos indica cual es la URL
solicitada al servidor. Por eso la
utilizamos en nuestro script para
indicar cual es el documento o
archivo no encontrado.
Algo un
poco más funcional
Ahora bien, el ejemplo anterior es
bastante sencillo y realmente poco
útil para el administrador del
sitio, ya que únicamente informa
al navegante de cual es el
documento faltante. Algo mas útil
seria que cuando no se encuentra
un documento se le informe de
alguna manera al administrador
para que tome conocimiento
inmediatamente, ya sea de algún
enlace roto o intento de acceso a
archivos no permitidos.
Para avisarle al WebMaster del
sitio lo haremos mediante el envío
de un correo electrónico a través
de la función mail();
Veamos como quedaría nuestro
script:
Insertaremos este código en
nuestra página llamada mi404.php
 |
Partes modificables de
este código:
El texto de información que mostrará
al visitante lo puedes modificar en
estas líneas:
El documento:
<b><?=$_SERVER['REQUEST_URI'];?></b>
no ha sido
encontrado en nuestro servidor.<br>
El error ha
sido comunicado al administrador del
sitio. Disculpe las molestias
ocasionadas.
En estas líneas podrás modificar el
e-mail, el texto del asunto y el
texto del mensaje:
$para='webmaster@misitio.com';
$asunto='Documento
no encontrado.';
$mensaje='El
documento: ' . $_SERVER['REQUEST_URI']
. ' no ha sido
encontrado en el sitio: '
.$_SERVER['SERVER_NAME']. '
al tratar de
ser accedido el ' . $fecha .
' desde la
dirección ' . $_SERVER['HTTP_REFERER'];
|
Ahora, además
del documento le indicamos el
sitio, la fecha y la hora del
error, además de la dirección
desde la cual se trato de acceder,
esto es útil para chequear que los
enlaces desde otras páginas
externas a nuestro sitio, estén
referenciando documentos
existentes y por ende comunicarles
del cambio.
Conclusión
Con esta
breve introducción, podrán empezar
a personalizar sus mensajes de
errores y aprovecharlos para
facilitar la administración de su
sitio, conociendo al instante que
links están caídos dentro del
sitio. Ahora, solo resta
experimentar y encontrar que datos
podemos obtener y cuales son los
que nos interesan.
============ ===========
OJO
,
si vuestro sitio Web contiene
muchos errores podréis recibir
mogollón de e-mails ... Os
aconsejo que lo probéis con un
correo electrónico nuevo para no
desbordar el que usáis
corrientemente...
En
caso de no querer seguir con este
servicio, modificáis el .htaccess
tal y como estaba antes...
RECUERDA,
hazte una copia del
archivo .htaccess antes de
realizar este ejercicio...
============ FIN ===========