Apacheの組み込みモジュールmod_rewriteのリライト機能を使ってすべてのリクエストがフロントコントローラに行くように設定します。
設定ファイルはApacheのアクセス制御ファイルである".htaccess"を使います。
[htdocs/.htaccess]
RewriteBase / 設定なので「http://サーバ名/」がベースURLになります。
なのでフロントコントローラファイルとなるindex.phpはウェブサーバのドキュメントルート直下に設置する必要があります。
ディレクトリ構造(ファイル配置)
htdocs/ (ウェブ公開される)
+- index.php ..フロントコントローラ
+- .htaccess ..リライト設定
上記のような配置になります。
Windows環境ではドットファイル作成がうまくいかない場合はメモ帳のようなソフトに書いて「名前を付けて保存」でファイル名を指定すれば作成ができると思います。
先ほどはドキュメントルートに設置する例でした。今度は階層を変えた設定例です。
[htdocs/foo/.htaccess]
RewriteBase /foo/ 設定なので「http://サーバ名/foo/」がベースURLになります。
なのでフロントコントローラファイルとなるindex.phpはウェブサーバのドキュメントルート直下にあるfooディレクトリ内に設置する必要があります。
ベースURLが変わると「http://サーバ名/foo/bar/fuga/」というリクエストがあればコントローラ名が"bar"で、アクション名が"fuga"となります。
ディレクトリ構造(ファイル配置)
htdocs/ (ウェブ公開される)
+- foo/
+- index.php ..フロントコントローラ
+- .htaccess ..リライト設定
上記のような配置になります。