Yo lo que tengo es este archivo que contiene todos los nombres de los modulos:
   Código PHP:
    <?php
/*
 * Archivo de configuración para nuestra aplicación modularizada.
 * Definimos valores por defecto y datos para cada uno de nuestros módulos.
*/
define('MODULO_DEFECTO', 'home');
define('LAYOUT_DEFECTO', 'layout_simple.php');
define('TITLE_DEFECTO', 'Patria Quemera - web no oficial de Huracán');
define('MODULO_PATH', realpath('./modulos/'));
define('LAYOUT_PATH', realpath('./layouts/'));
 
$web="Patria Quemera";
 
$conf['home'] = array(
        'archivo' => 'home.php',
        'layout' => 'layout_portada.php',
        'title' => TITLE_DEFECTO );
$conf['articulo'] = array(
        'archivo' => 'art.php',
        'layout' => LAYOUT_DEFECTO );
$conf['imp_art'] = array(
        'archivo' => $conf['articulo']['archivo'],
        'layout' => 'imprimir.php' );
$conf['login'] = array(
        'archivo' => 'gestion_usuarios.php',
        'layout' => LAYOUT_DEFECTO,
        'title' => 'Login Usuario' );
$conf['logout'] = array(
        'archivo' => 'out.php',
        'layout' => LAYOUT_DEFECTO,
        'title' => 'Logout Usuario' );
?>    
  y el index.php que llama a ese archivo es asi:  
 Código PHP:
    <?php
ob_start();
//error_reporting(E_ALL);
// Primero incluimos el archivo de configuración
include('conf.php');
 
/** Verificamos que se haya escogido un modulo, sino
* tomamos el valor por defecto de la configuración.
*/
if (!empty($_GET['mod']))
    $modulo = $_GET['mod'];
else
    $modulo = MODULO_DEFECTO;
 
/** También debemos verificar que el valor que nos
* pasaron, corresponde a un modulo que existe, caso
* contrario, cargamos el modulo por defecto
*/
if (empty($conf[$modulo]))
        $modulo = MODULO_DEFECTO;
 
/** Ahora determinamos que archivo de Layout tendrá
* este módulo, si no tiene ninguno asignado, utilizamos
* el que viene por defecto
*/
if (empty($conf[$modulo]['layout']))
        $conf[$modulo]['layout'] = LAYOUT_DEFECTO;
 
if (empty($conf[$modulo]['title']))
        $conf[$modulo]['title'] = TITLE_DEFECTO;
              $title=$conf[$modulo]['title'];
 
// Aqui podemos colocar todos los comandos necesarios para
// realizar las tareas que se deben repetir en cada recarga
// del index.php - En el ejemplo, conexión a la base de datos.
?>
<HEAD>
<META NAME="Title" CONTENT="Patria Quemera - Sitio no Oficial de Huracán">
<META NAME="Author" CONTENT="PatriaQuemera">
<META NAME="Description" CONTENT="Toda la información del Club Huracán tanto en la web como en los foros quemeros">
<META NAME="Keywords" CONTENT="PatriaQuemera Huracán Quemero Fútbol Ducó Club Oficial Quemera Mohamed Fixture Torneo Nacional Sitio">
<META NAME="Robots" CONTENT="All">
</head>
<?
 
include("clases/conexion.php");
 
 echo "<LINK href=\"css/estilo.css\" rel=stylesheet>\n";
 include("includes/functions.php");
// include("scripts/banner.html");
/** Finalmente, cargamos el archivo de Layout que a su vez, se
* encargará de incluir al módulo propiamente dicho. si el archivo
* no existiera, cargamos directamente el módulo. También es un
* buen lugar para incluir Headers y Footers comunes.
*/
$path_layout = LAYOUT_PATH.'/'.$conf[$modulo]['layout'];
$path_modulo = MODULO_PATH.'/'.$conf[$modulo]['archivo'];
 
if (file_exists($path_layout))
    include( $path_layout );
else
    if (file_exists( $path_modulo ))
        include( $path_modulo );
    else
        die('Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
ob_end_flush();
?>