Comment Code Igniter sait-il que index.php n’est pas un répertoire?

Mon application Code Igniter a des URL comme ceci:

http: //servername/contexttroot/index.php/Sessions/login/

Ma question est la suivante: quand l’URL est analysée, comment Apache sait-il qu’il n’y a pas de dossier nommé index.php? Si j’étais l’parsingur, c’est ce que je chercherais 🙂

Je sais que ça marche et que CI.index.php est appelé mais je ne comprends pas comment cela fonctionne. Peut-être que les points ne sont pas autorisés dans les noms de répertoire?

MISE À JOUR Voir les commentaires sur la question acceptée pour plus de détails, il y a beaucoup de détails à ce que je demande.

CodeIgniter effectue essentiellement des réécritures de l’URL en recherchant le nom du fichier d’index “index.php” dans votre URL. Regardez dans le fichier de configuration de CI pour cette ligne:

$config['index_page'] = "index.php"; 

Essayez de changer cela en quelque chose d’autre et voyez si cela fonctionne toujours.

Edit : OK, pour répondre à la question posée par Juan, la façon dont Apache sait que index.php n’est pas un répertoire, c’est parce qu’un fichier et un répertoire ne peuvent pas avoir le même nom dans le même répertoire. Si index.php était simplement un répertoire, Apache y entrerait et chercherait plus loin. S’il s’agit d’un fichier, il exécutera le fichier.