
11/01/2012, 11:51
|
 | | | Fecha de Ingreso: septiembre-2011 Ubicación: Barcelona
Mensajes: 705
Antigüedad: 13 años, 4 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 |