Foros del Web » Administración de Sistemas » Apache »

Forzar un 404

Estas en el tema de Forzar un 404 en el foro de Apache en Foros del Web. Hola compañeros, os cuento este caso. Quiero forzar un error 404 y llevo ya una semanita haciendo pruebas pero no consiguo afinar el tema. El ...
  #1 (permalink)  
Antiguo 08/11/2011, 06:15
 
Fecha de Ingreso: noviembre-2004
Mensajes: 220
Antigüedad: 20 años
Puntos: 0
Forzar un 404

Hola compañeros, os cuento este caso.

Quiero forzar un error 404 y llevo ya una semanita haciendo pruebas pero no consiguo afinar el tema. El tema es que tengo unos articulos que se crean que tienen fecha de caducidad y como google sigue enlazandolos incluso cuando hayan desaparecido he pensado en controlar el 404, dando se muestre un mensaje personalizado.

Intento forzar este error de la siguiente manera. Cuando hago el select y no encuentra resultados, pongo:
Código PHP:
header('HTTP/1.0 404 Not Found'TRUE404);
        exit; 
El enlace de ejemplo puede ser este: http://linki.to/e0n
Parece que funciona porque en chrome me muestra el mensaje de ¡vaya! parece que este enlace esta roto.

Tengo configurado también el .htaccess con: ErrorDocument 404 404.php pero sigue sin funcionar del todo bien.

En cambio si pinchas este enlace: http://linki.to/e0p si hace referencia directamente a un error en la url (no existe esa ruta configurada en la url semantica) Si consigue ir directamente al error configurado en el .htaccess.

Se os ocurre alguna forma de forzar este error 404 y que me muestre el 404.php?

Muchas Gracias por todo.
  #2 (permalink)  
Antiguo 08/11/2011, 06:45
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 13 años, 1 mes
Puntos: 140
Respuesta: Forzar un 404

Hola. para error 404:

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

De esta manera: envías cabecera que interpreten los buscadores como 404 Not found.
Muestras el contenido de la página que tengas en 404.php. Eso si, en el url se verá la dirección incorrecta que hayas introducido.
Para comprobar que realmente tienes una cabecera con 404 Not found, te recomiendo usar algo como el plugin para FF Live http Headers.
Suerte
  #3 (permalink)  
Antiguo 08/11/2011, 09:18
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Forzar un 404

No entiendo bien el problema, si la página no existe, el propio apache te va a generar un estatus 404

Esto por ejemplo, produce un 404
http://www.masteatro.com/cartelerate...lara-madrid222

esto
http://www.masteatro.com/cartelerateatro/404.php
Obviamente no, porque esa página si existe, a su vez tu 404.php debe de tener algun include, porque en el primer caso no muestra todo el header con los estilos, favicon y demás.

Creo que todo pasa porque en .htaccess tenes puesto

Código Apache:
Ver original
  1. ErrorDocument 404 404.php

cuando deberías tener

Código Apache:
Ver original
  1. ErrorDocument 404 /404.php

es decir indicando que 404.php está en la raiz, y para el header usar un include con la url completa para evitar problemas

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: php
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 09:20.