-
ルーティングの概要: ルーティングは、ウェブアプリケーションのURLを特定の処理やコードに関連付ける方法です。PHPでは、URLのパス部分を解析し、適切なコントローラやアクションに関連付けることができます。
-
ルーティングの実装: 以下は、シンプルなルーティングの実装例です。
<?php
// index.php
// ルーティングの定義
$routes = [
'/' => 'HomeController@index',
'/about' => 'AboutController@index',
'/contact' => 'ContactController@index',
];
// URLのパスを取得
$path = $_SERVER['REQUEST_URI'];
// ルーティングのマッチング
if (array_key_exists($path, $routes)) {
$controller = explode('@', $routes[$path])[0];
$action = explode('@', $routes[$path])[1];
// 適切なコントローラとアクションを呼び出す
call_user_func([$controller, $action]);
} else {
// ルートが見つからない場合の処理
echo '404 Not Found';
}
?>
この例では、$routes
配列にURLパスとコントローラ・アクションの関連付けを定義しています。$_SERVER['REQUEST_URI']
を使用して、ユーザーのリクエストされたURLパスを取得し、$routes
配列と照合します。一致するルートがあれば、関連するコントローラとアクションを呼び出します。一致するルートが見つからない場合は、404 Not Foundと表示します。
- .htaccessファイルの使用: .htaccessファイルを使用すると、Apacheウェブサーバーでルーティングを設定できます。以下は、シンプルな.htaccessファイルの例です。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
この例では、URLが既存のディレクトリやファイルと一致しない場合に、すべてのリクエストをindex.phpに転送します。[QSA,L]
フラグは、クエリ文字列を保持し、ルーティング後に他のルールを適用しないよう指定します。
.htaccessファイルはウェブサーバーのルートディレクトリに配置する必要があります。
これらの基本的な手法とコード例を使用することで、PHPでのルーティングと.htaccessの使用方法についての理解を深めることができます。