0

コントローラー名のみを変更し、他のセグメントはそのままにして、CodeIgniter URI を再ルーティングしようとしています (存在する場合)。

私のコントローラーは、 controllers/user/profile_controller.phpなどの単一レベルのフォルダー構造を使用しています。

各コントローラーは[name]_controllerと呼ばれ、他のファイル/クラスと区別し、競合 (つまり、Tank Auth ユーザー モデルと衝突するユーザー コントローラー) を回避しますが、URI を次のようにする必要があります。

/users/profile

したがって、単純なルート (機能する) は次のようになります。

$route['(:any)/(:any)'] = '$1/$2_controller';

しかし、上記では後続のセグメントが許可されておらず、いくつになるかわかりません。(:any) は機能しません。これは単一のセグメントにのみ適用されるためです。明らかに、セグメントの潜在的な数が少なくても、複数のルートを書きたくないのです。

残りの URI (例: users/profile/edit/123/abc) と一致するように正規表現を試しましたが、次の方法は機能しません。

$route['(:any)/(:any)/(.+)'] = "$1/$2_controller/$3";

残りのセグメントを照合して、再ルーティングされた URI に戻すことができるかどうかを知っている人はいますか?

前もって感謝します。マット

4

0 に答える 0