0

CodeIgniter でプロジェクトを行っており、特定のコントローラーのすべての URL を、1 つを除いて特定のアクションにルーティングしたいと考えています。たとえば、URLが必要です

myurl/mycontroller/myaction

アクションによって処理されますが、myaction次のような他の URL

myurl/mycontroller/myaction1
myurl/mycontroller/myaction2
myurl/mycontroller/myaction3

abc特定のコントローラのアクションによって処理されます。インターネット全体を検索したところ、一部を除く特定のコントローラーによってすべての URL を処理する方法が得られました。それを行う方法は

$route['^(?!admin|user|setup|pages).*'] = "user/view/$0";

ここでuser/viewは、URL の 2 番目の部分がadminusersetupまたはpages.

4

2 に答える 2

0

これは正しい構文だと思います

$route['myurl/mycontroler/myaction(:any)'] = "myurl/controller_a/action";

ここで確認できます

編集

あなたのコメントを読んで、調整しました。試してみて、適合するかどうかを確認してください。

編集2

正確な単語 myaction を無傷にしたいだけなので、単語の後に (:any) または (\d+) を使用して、番号が myaction 単語に付けられたときに再ルーティングが行われるようにします。私はまだ実際にそれをテストしていません。

于 2011-11-04T14:29:09.863 に答える
0

順番にルートが適用されると思いますので、「myaction」のルートを先に追加してみてはいかがでしょうか。

$route['myurl/mycontroller/myaction'] = "myurl/mycontroller/myaction";
$route['myurl/mycontroller/abc'] = "myurl/mycontroller/$1";
于 2011-11-04T14:05:28.213 に答える