短い回答:すべてのページリクエストは実際には唯一のindex.phpファイルを通過しています。ページコンテンツは、サーバー上のファイルではなく、データベースに格納されます。
長い答え: Concrete5(およびそのことについては、ほとんどのPHPベースのCMSの)は、このように動作:すべての要求は、index.phpファイルを介してルーティングされます。このルーティングは、.htaccessファイル内のいくつかのmod_rewriteルールによって強制されます。このルールは、「どのリクエストでも、実際にそのページに行くのではなく、index.phpに行き、残りのリクエストされたパスを$ _GETパラメータとして渡す」と言います。 index.phpコード(またはindex.phpファイルに含まれている他のコード)では、リクエストされたページは、Apacheによって$ _GETパラメータに入れられたパスに基づいて決定されます(のmod_rewriteルールに従って)。 htaccess)、適切なコンテンツがデータベースから取得されます。
サーバー上のファイルとは対照的に、データベースにコンテンツを格納することにはいくつかの利点があります。たとえば、すべてのページで同じHTMLテンプレート(ヘッダー、フッター、サイドバー)を再利用できます。テンプレートを変更すると、そのテンプレートが使用されたすべてのページに自動的に反映されます。また、ページをシャッフルしたり、任意のURL(例:最後に ".php"拡張子、/ 2010/11/date/based/paths/for/blog/posts)を付けることが容易になります。
もちろん、すべてのリクエストには多くのデータベースクエリが必要ですが、ほとんどのサイト(ページビュー数がないサイト)ではトレードオフが十分です(さまざまなタイプのキャッシュがパフォーマンスヒットを減らすのに役立ちます) )。ヨルダンの答えは優れて