Foros del Web » Creando para Internet » Diseño web »

Devolver cabecera 404 desde php y que muestre página de error personalizada

Estas en el tema de Devolver cabecera 404 desde php y que muestre página de error personalizada en el foro de Diseño web en Foros del Web. Hola, estoy teniendo un problema con la página personalizada para los errores 404, que es el siguiente: el el .htaccess tengo la linea: ErrorDocument 404 ...
  #1 (permalink)  
Antiguo 12/01/2009, 02:12
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Devolver cabecera 404 desde php y que muestre página de error personalizada

Hola, estoy teniendo un problema con la página personalizada para los errores 404, que es el siguiente:

el el .htaccess tengo la linea:
ErrorDocument 404 /mi404.php

Si yo intento acceder a una página que no existe, se me carga mi página de error sin problema. Estos funciona bien.

El problema es que tengo una página, la cual quiero que devuelva el 404 en el caso de que NO le llegue un parámetro en concreto. Lo que yo hago es comprobar si me ha llegado el parámetro, y en caso contrario devolver una cabecera 404 de la siguiente forma:

header("HTTP/1.0 404 Not Found");
exit;


Bien, pues la cabecera la devuelve bien (lo he comprado con el LiveHttpHeaders de Firefox) pero no me muestra la página 404 personalizada que he definido en el .htaccess, sino que simplemente saca un página en blanco (tanto en IE como en FF).

He probado añadiendo otra cabecera más:

header("HTTP/1.0 404 Not Found");
header(" Status: 404 Not Found");
exit;


pero sigue sin funcionar.

También lo he intentado añadiendo texto despues de las cabeceras, por lo del problema que hay en IE si el contenido es menor a 512 bytes.. pero nada, no funciona.

¿Alguna idea de por que puede pasar o que es lo que estoy haciendo mal?

Un saludo
  #2 (permalink)  
Antiguo 12/01/2009, 09:42
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Devolver cabecera 404 desde php y que muestre página de error personalizad

El problema es que no se hace una redirección automática hacia la página de error, que parece que es lo que esperás al enviar la cabecera y salir inmediatamente. La página en blanco es de hecho el comportamiento esperado.

Una posibilidad es que incluyas el código completo de la página de error (via include("mi404.php"), la otra podría ser una "trampa": redireccionar a una página tipo tudominio.com/no_encontrado para que así se procese mi404.php normalmente


Saludos.
  #3 (permalink)  
Antiguo 12/01/2009, 11:04
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Respuesta: Devolver cabecera 404 desde php y que muestre página de error personalizad

Gracias, ya entiendo lo que dices...

Creo que voy a probar con el primer método que explicas, el de hacer el include de la pagina de error; de esta forma me evito una redirección y además, la url de la barra de direcciones no me cambia y se mantiene la original.

Saludos.
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 22:06.