Réponse courte: Toutes les demandes de page passent actuellement par le seul fichier index.php. Le contenu de la page est stocké dans la base de données, pas dans les fichiers sur le serveur.
Réponse longue: Concrete5 (et la plupart des années CMS en PHP pour cette question) fonctionnent comme ceci: toutes les demandes sont acheminées via le fichier index.php. Ce routage est appliqué avec certaines règles mod_rewrite dans le fichier .htaccess. Les règles disent "pour toute demande, ne pas aller à cette page, mais plutôt aller à index.php et passer le reste du chemin demandé comme paramètres $ _GET". Ensuite, dans le code index.php (ou un autre code inclus par le fichier index.php), la page demandée est déterminée en fonction du chemin qui a été placé dans les paramètres $ _GET par Apache (conformément à la règle mod_rewrite dans. htaccess), et le contenu approprié est extrait de la base de données.
Le stockage de contenu dans la base de données par opposition aux fichiers sur le serveur présente plusieurs avantages. Par exemple, vous pouvez réutiliser le même modèle html - en-tête, pied de page, barre latérale - sur chaque page, et si vous changez le modèle, il sera automatiquement reflété sur toutes les pages sur lesquelles il est utilisé. En outre, il est plus facile de mélanger les pages et de leur donner l'URL que vous voulez (par exemple, aucune extension ".php" à la fin, ou/2010/11/date/based/paths/for/blog/posts). L'inconvénient est bien sûr que chaque requête nécessite de nombreuses requêtes de base de données, mais pour la plupart des sites (ceux sans zillions de pages vues), le compromis en vaut la peine (et différents types de cache peuvent aider à réduire les pertes de performances).