Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/01/2012, 11:51
Avatar de charlyalegret
charlyalegret
 
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Errores personalizados con .htaccess

Esto es más de php que de apache (o almenos hasta donde llega mi conocimiento).

Por ejemplo, si trabajas páginas dinámicas y url's con traspaso de variables, y url amigables:

miweb.com/articulo1 ---> que sería ---> miweb.com/pagina.php?id=1 (mediante mod_rewrite)

si alguien entra a

miweb.com/articulo2 pero este no existe, en realidad el servidor interpretará miweb.com/pagina.php?id=2

Esta página sí que existe, por lo que ignora la linea de ErrorDocument

Para mandar el error, entonces, en pagina.php validas la variable id, y si no existe, mandas el error.

Si haces un header (location:404.php), te mandará a la página de error, pero es incorrecto ya que no mandas ningun header 404 not found, y google te puede indexar la página 404, puede ver que tienes varias redirecciones a esa página, etc etc.

Si haces lo correcto:

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

Se mantiene la url original, envías un header 404 not found, y muestra el contenido de error personalizado que tengas en el archivo 404.php (o error.htm en tu caso).

No se si me he explicado bien...

Saludos