今回は、以下のことをやりたかったのです。
【http://test.com/page/3/】とういうページングURLを実現しつつ、他のルーティングは既存のまま。
【http://test.com/index/index/page/3/】の indexの部分を出したくなかったのです。
それを実現するために application.ini に追加した記述が以下です。
; ルート設定
resources.router.routes.default.type = "Zend_Controller_Router_Route_Module"
resources.router.routes.top.type = "Zend_Controller_Router_Route"
resources.router.routes.top.route = "page/:page/"
resources.router.routes.top.defaults.controller = "index"
resources.router.routes.top.defaults.action = "index"
resources.router.routes.top.defaults.page = 1
上から順番に検索していって、最後にヒットしたルートが有効になるようです。なので、defaultルートは一番上になります。
Zend_Application_Resource_Router
=> Zend_Controller_Router_Rewrite
=> Zend_Controller_Router_Route
=> Zend_Controller_Router_Route_Module
こんな順番でソースを見てたら、面白くなってきて、興味があちこちいってしまい、
動作を確認するまでに、結構時間がかかってしまいました。
Zend_Controller_Router_Rewiteの中に、各Routeクラスを設定していく構成なんですね。
今まで、基本ルールばかりを使ってたので、勉強になりました。
途中で試した Zend_Controller_Route_Regex を動作させれなかったのが気になるので、近いうちにまた実験しします。