https://example.com/cakephp設置ディレクトリ/コントローラー名/アクション名のような形式になります。webサーバー上には上記のようなファイルはありません。それなのに何故、コントローラー、アクションで設定したhtmlにアクセスできるかを見ていきたいと思います。urlが書きかえれます。webrootディレクトリの.htaccessファイルwebrootにある.htaccessファイルでは次のような処理が行われます。urlに実際にファイルがある場合は何もしない。ファイルがない場合、次のようにurlを書き換える。https://example.com/cakephp_dir/app/webroot/index.php?url=controllers/actionwebroot以下のcssや画像ファイルにちゃんとアクセスできるのは上記の1の処理のおかげということになります。実際にファイルがない場合はすべて、GETパラメーターにurl情報が渡された形でhttps://example.com/cakephp_dir/app/webroot/index.phpが起動します。[QSA,L]index.phpでの処理index.phpでは基盤のファイル読み込み、各種設定後に、渡されたurl情報を解析してコントローラーとアクションを特定します。//index.php内でDispatchオブジェクトが生成され、dispatchメソッドが実行される。_invokeにコントローラーとパラメーターを渡す。$output;}・・・echo($controller->output);上記のような流れでコントローラーに設定した処理が実行され、htmlがレンダリングされます。