コントローラー名のみを変更し、他のセグメントはそのままにして、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 に戻すことができるかどうかを知っている人はいますか?
前もって感謝します。マット