私は次のようなルートを持っています:
((?<directory>\w+)/?)?((?<controller>\w+)/?)?((?<action>\w+)/?)?((?<id>\d+))?
正常に動作しますが、サブルートへのすべてのルートにデフォルトのコントローラー(インデックス)を含める必要があります。たとえば、私のページのURIが/blog/post
(ブログがディレクトリで投稿がアクションになる)の場合、実際のURIは次のようになります-代わりblog/index/post
に使用するだけにフォールバックできるようにしたいと思います。blog/post
だから、私はそれを次の場所にルーティングしたいと思います:
directory = blog
controller = index
action = post
明らかに、これは2番目のパラメーターが実際にコントローラーである場合に問題を引き起こします。たとえば、directory/controller/action
正しくルーティングされません。
3つの単語パラメーターがあり、その後に数値パラメーターが続くことを検出するルーティング方法はありますか?これにより、必要な処理を実行できますか?
明確化のために:
param/param/param(?/id)
だろう:directory/controller/action(/id)
param/param(?/id)
だろう:directory/default_controller/action(/id)