Yo tengo una aplicación, mas o menos parecida al ejemplo que describís, que esta en la web hace varios años y nunca tuve ningun problema, en el index esta parte de codigo hace que si la variable 'modulo' esta vacia, se redirige al home (pagina principal) y si ingresan un modulo que no existe, va al modulo error.
Cada modulo tiene que estar presente en el array, ademas te cuento que uso url amigables y no hay problema.
Código PHP:
Ver original$modulo=!empty($_GET['modulo']) ?
$_GET['modulo'] : 'home'; $module=(string)$module;
$chequeodemodulos=array('home', 'ubicacion', 'historia', 'editorial', 'foro', 'fotos', 'contacto'); if(!in_array($module, $chequeodemodulos)){ $module="error";
}