Estoy construyendo un front-controller con PHP; para poder indicarle a PHP qué tiene que devolver en función del request del usuario tengo que indicar en las variables GET una serie de nombres preestablecidos.
Entonces he llegado a la conclusión de que tengo que hacerlo mediante el .htaccess para lograr dos cosas: crear URLs amigables y por otro lado indicar una ruta a mi aplicación para que devuelva algo.
El problema está en dos cosas:
1) Este es mi .htaccess
Código Apache:
Ver originalRewriteEngine On
Options Indexes followSymLinks
RewriteRule ^(.*)/?(.*)/?$ index.php?class=$1&argumnts=$2
Y lo que ocurre es que cuando solicito a mi servidor local (XAMPP) una ruta como por ejemplo index.php/home/ lo que hace es crear las variables GET de la siguiente manera
Código PHP:
Ver originalstring(31) "class=index.php/home/&argumnts="
No encuentro la manera de poder hacer que no asigne a la variable GET class el string index.php/
2) Cuando desde el navegador solicito el directorio donde está el index.php de esta forma
/aqui_document_root/aqui_mifolder/
Sí imprime la barra de navegación, pero desde el momento que además de poner index.php pongo la barra entonces ya no se imprime el div de la barra de navegación que tengo definida en el propio index.php porque va a estar en todas las secciones de la aplicación, solo se imprime el contenido de la barra que es dinámico; pero si en vez de / pongo ?home entonces sí imprime el div de la barra de navegación.
En el index.php tengo lo siguiente para poder ver tanto la barra de navegación como el contenido de la barra de navegación
Código PHP:
Ver original<div id="header">
<?php
/*
* la cabecera
*/
try{
$obj=new ReflectionMethod("\modules\Head", "view");
echo $obj->invoke(new \modules\Head);
} catch (Exception $ex) {
echo $ex;
}
?>
</div>
No entiendo por qué ocurren estas dos cosas.
¿Alguien puede ayudarme?