dietcake advent calendar 2014 の12日目です。
dietcake本体には、URLのルーティングを制御する機能はありません。
自前で実装してもいいのですが、spongecakeでは、.htaccessを使って制御しています。
spongecakeに書かれている設定値は以下のような感じです。

RewriteEngine On

# App routing
RewriteRule ^$ index.php?dc_action=default/index [QSA,L]

# DietCake routing
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !.(css|gif|jpg|png|js|ico)$
RewriteRule ^(.*)$ index.php?dc_action=$1 [QSA,L]

最初のApp routingの行で、デフォルトで実行されるアクションを指定しています。
spongecakeでは、index.phpに引数なしでアクセスされるとdefault/indexが呼ばれるようになっています。
次の Dietcake routingからの行で、phpファイルを対象にしてURLの値をdc_actionに対して付与するようにリライトしています。

基本的にはこの2つのルールだけで運用可能ですが、既存のシステムのリプレイスなどで、
これまでのURLを維持しつつ、dietcakeで運用したい場合などは、mod_rewriteを使って

RewriteRule ^index.php/user/regist$ index.php?dc_action=user/register [QSA,L]

のように追記する事で、URLを維持したままシステムを入れ替える事ができます。
というか、 mod_rewrite を普通に使っているだけなので mod_rewrite でできる事ならなんでもできますね。

.htaccess が使えない環境もあると思うので、そういった場合は自前で制御する必要がでてきますが、
個人的には複雑なルーティングルールを作ると、システムが複雑になってメンテしづらくなるので、
なるべくシンプルによせていくのが良いと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ねこ認証:9つのパネルの中からねこを3匹選んでください