第5章 Zend_Controller_RewriteRouter

目次

5.1. 導入
5.2. ルータの使用法
5.3. 基本的なルーティング
5.4. 変数のデフォルト値
5.5. 変数の制限
5.6. ベース URL およびサブディレクトリ
5.7. デフォルトのルート

5.1. 導入

Zend_Controller_RewriteRouter は、新しいバージョンのルータです。 ルーティングとは、受け取った URI を展開し、どのコントローラのどのアクションが リクエストを処理するのかを決める処理のことです。 このコントローラの定義に従って、アクションおよびオプションのパラメータは Zend_Controller_Dispatcher_Token というバリューオブジェクトにまとめられます。 このオブジェクトを処理するのが Zend_Controller_Dispatcher です。 ルーティングが行われるのは一度だけ、すなわちリクエストを最初に受け取ってから 最初のコントローラに処理が渡される際だけです。

Zend_Controller_RewriteRouter は、mod_rewrite 風の機能を PHP だけで実現できるように設計されています。 この処理は Ruby on Rails のルーティングを多少参考にしており、 ウェブサーバの URL 書き換えに関する前提知識を必要としません。 以下の単純な mod_rewrite ルール (のいずれか) で動作するように設計されています。

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1