Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/09/2010, 05:11
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Mejorar web modular

Buenas,

Me descargué el ejemplo de zonaPHP
http://www.zonaphp.com/creando-webs-modulares/6/

Y lo estoy adaptando, pero me encuentro con un problema no consigo que si no existe el modulo este redirija hacia la página de error 404, me redirige hacia una página 404 que yo he creado pero entiendo que esto el navegador lo interpreta como un código 200, porque existe...

Yo quiero que vaya al 404 de verdad xD, no se si me entendéis...

Y no sé si donde lo aplico es en el mejor lugar, linea 20

Podéis ver el funcionamiento desde aquí
http://www.webmodular.neodani.com

Este el código utilizado

Código PHP:
Ver original
  1. <?php
  2. //error_reporting(E_ALL);
  3. // Primero incluimos el archivo de configuración
  4. include('conf.php');
  5.  
  6. /** Verificamos que se haya escogido un modulo, sino
  7. * tomamos el valor por defecto de la configuración.
  8. */
  9. if (!empty($_GET['pagina']))
  10.     $modulo = $_GET['pagina'];
  11. else
  12.     $modulo = MODULO_DEFECTO;
  13.  
  14. /** También debemos verificar que el valor que nos
  15. * pasaron, corresponde a un modulo que existe, caso
  16. * contrario, cargamos el modulo por defecto
  17. */
  18. if (empty($conf[$modulo])){
  19.     $modulo = MODULO_DEFECTO;
  20.     header ("Location: ./modulos/404.php");
  21.     exit;
  22. }
  23.  
  24. /** Ahora determinamos que archivo de Layout tendrá
  25. * este módulo, si no tiene ninguno asignado, utilizamos
  26. * el que viene por defecto
  27. */
  28. if (empty($conf[$modulo]['layout'])){
  29.         $conf[$modulo]['layout'] = LAYOUT_DEFECTO;
  30. }      
  31. /** Aqui podemos colocar todos los comandos necesarios para
  32. * realizar las tareas que se deben repetir en cada recarga
  33. * del index.php - En el ejemplo, conexión a la base de datos.
  34. *
  35. * include('clases/class.DB.php');
  36. * $db = new DB();
  37. * $db->conectar();
  38. */
  39.  
  40. /** Finalmente, cargamos el archivo de Layout que a su vez, se
  41. * encargará de incluir al módulo propiamente dicho. si el archivo
  42. * no existiera, cargamos directamente el módulo. También es un
  43. * buen lugar para incluir Headers y Footers comunes.
  44. */
  45. $path_layout = LAYOUT_PATH.'/'.$conf[$modulo]['layout'];
  46. $path_modulo = MODULO_PATH.'/'.$conf[$modulo]['archivo'];
  47.  
  48. if (file_exists($path_layout))
  49.     include( $path_layout );
  50. else
  51.     if (file_exists( $path_modulo ))
  52.         include( $path_modulo );
  53.     else
  54.         die('Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
  55. ?>

Muchas gracias de antemano!