Resulta que estoy construyendo un diseño modular de la siguiente manera (acepto todo tipo de sugerencias!!!)
Tengo mi index.php donde cargo todos los módulos, cabecera, metas, pie de pagina, etc y el contenido.
La parte central de la pagina tiene un switch
Código PHP:
Ver original
<? $id=$_GET['pagina']; switch ($id) { case 'faq': include("pages/ayuda/faq.php"); break; case 'soporte': include("pages/ayuda/soporte.php"); break; case 'servicios': include("pages/servicios.php"); break; case 'directorio': $apartado=$_GET['apartado']; switch ($apartado) { case 'futbol': include("pages/directorio/futbol.php"); break; case 'tenis': include("pages/directorio/tenis.php"); break; default: include("pages/404.php"); }; break; default: include("pages/404.php"); } ?>
Esto funcionaria tal que así
miweb.com/index.php/?pagina=faq
o si entran en alguna subpagina
miweb.com/index.php/?pagina=directorio&apartado=tenis
Todo esto con un .htaccess como el que sigue, para cada sección tengo que crear una linea como la siguiente
Código Apache:
Ver original
RewriteRule ^equipo_me/$ /index.php?pagina=equipo_me [L] RewriteRule ^nosotros/$ /index.php?pagina=nosotros [L] RewriteRule ^proximos-partidos/$ /index.php?pagina=proximos [L] #Rewriterule ^(.+)/(.+)/ index.php?pagina=$1&apartado=$2 [L] # SE LO TRAGA TODO RewriteRule ^faq/$ /index.php?pagina=faq [L] RewriteRule ^soporte/$ /index.php?pagina=soporte [L] #RewriteRule ^(.+)/$ /index.php?pagina=$1 [L] # SE LO TRAGA TODO
Mi problema es que si ponen una dirección que no existe, no redirecciona hacia una pagina 404, sino que muestra la página que esta definida en el switch como default, y esto no debería ser así... ya que si la dirección no existe debería dar un error 404 not found.
Esto pasa siempre y cuando quiero ahorrar lineas y pongo lineas como las siguientes
Rewriterule ^(.+)/(.+)/ index.php?pagina=$1&apartado=$2
RewriteRule ^(.+)/$ /index.php?pagina=$1
¿Cómo podría solucionarlo? La manera de implementar la web modular es correcta no? he leido varios ejemplos por la red, zonaphp, forosdelweb, etc...
Muchas gracias de antemano!