Foros del Web » Creando para Internet » HTML »

Perzonalizar Error 404

Estas en el tema de Perzonalizar Error 404 en el foro de HTML en Foros del Web. Tengo entendido que se puede personalizar el error 404 (cuando no se encunentra una pagina), pero no se como, alguien sabe q me pueda explicar? ...
  #1 (permalink)  
Antiguo 23/05/2005, 09:17
 
Fecha de Ingreso: febrero-2005
Ubicación: MEXICO
Mensajes: 455
Antigüedad: 19 años, 9 meses
Puntos: 5
Perzonalizar Error 404

Tengo entendido que se puede personalizar el error 404 (cuando no se encunentra una pagina), pero no se como, alguien sabe q me pueda explicar?

gracias.
__________________

  #2 (permalink)  
Antiguo 23/05/2005, 09:53
Avatar de centinela77  
Fecha de Ingreso: diciembre-2004
Ubicación: León
Mensajes: 143
Antigüedad: 19 años, 11 meses
Puntos: 1
aunque no creo que tu pregunta encaje en el foro de xhtml ...

deberías de crearte un fichero .htaccess en el caso de que sea linux tu servidor con el siguiente contenido (lo personalizas a tu gusto)

ErrorDocument 400 http://www.tudominio.com/error/400.html
ErrorDocument 401 http://www.tudominio.com/error/401.html
ErrorDocument 403 http://www.tudominio.com/error/403.html
ErrorDocument 404 http://www.tudominio.com/error/404.html
etc ....

con eso debe debería de funcionarte
  #3 (permalink)  
Antiguo 30/05/2005, 03:00
Avatar de Batusai  
Fecha de Ingreso: enero-2005
Ubicación: Málaga -Andalucía- España
Mensajes: 130
Antigüedad: 19 años, 10 meses
Puntos: 1
Pero, ¿es seguro crear ese fichero .htaccess en el directorio raiz de tu web? Estoy mirando un tutorial para crear un mensaje de error 404 y dice:

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é cómo 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 extendibles a otros webservers. Además, los errores sólo 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 /www.tupagina.com/error404.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 webserver, veamos que tenemos dentro de nuestro script.

Código HTML:
<html>
<head>
<title>Documento no encontrado</title>
</head>
<body>
El documento: <b><?=$_SERVER['REQUEST_URI'];?></b> no ha sido encontrado en nuestro 
servidor.<br> Por favor, bla, bla, bla.
<!--
Recordemos que IE no muestra las paginas de error salvo que sean mayores a 512 bytes
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-->
</body>
</html> 
Entre las variables que tenemos disponibles en apache desde PHP está
$_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 cómo quedaría nuestro script:

Código HTML:
<html>
<head>
<title>Documento no encontrado</title>
</head>
<body>
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.

<?
//Indicamos la fecha y hora del suceso.
$fecha = date('d-m-Y H:i:s');
$para='[email protected]';
$asunto='Documento no encontrado.';
$mensaje='El documento: ' . $_SERVER['REQUEST_URI'] . ' no ha sido encontrado en el 
sitio: ' .$_SERVER['SERVER_NAME']. ' al tratar de acceder al mismo el ' . $fecha . ' 
desde la dirección ' . $_SERVER['HTTP_REFERER'];

mail($para, $asunto, $mensaje);
?>
<!--
Todo sea por el IE
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-->
</body>
</html> 
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 trató 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.


Extraído de: http://foro.elhacker.net/index.php/topic,12694.0.html y quizá antes de
http://www.maestrosdelweb.com/editorial/404errphp/



¿Puedo aplicarlo sin miedo?

Última edición por Batusai; 30/05/2005 a las 03:13
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:28.