3

すべてのリクエストをキャッチして 1 つの特定のコントローラーに転送するルートを定義するにはどうすればよいですか? 私はすでにデフォルトルートを追加しようとしました

Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
         'directory' => 'site',
         'controller' => 'foobar',
         'action' => 'foobar',
));

また

Route::set('default', '(.*)')
    -> defaults(array(
        'directory' => 'site',
        'controller' => 'foobar',
        'action' => 'foobar',
));

私のbootstrap.phpに、しかしそれは動作しません。localhost/a と入力すると、次のいずれかが表示されます

Unable to find a route to match the URI: a

また

The requested URL a was not found on this server.

エラー。コントローラーが有効であることは確かです。

Route::set('foobar', 'foo') 
    -> defaults(array(
        'directory' => 'site',
        'controller' => 'foobar',
        'action' => 'foobar',
));

正常に動作します。

私はKohana 3.3を使用しています。

4

1 に答える 1

6

これは機能するはずです:

Route::set('foobar', '<catcher>',array('catcher'=>'.*')) 
    -> defaults(array(
        'directory' => 'site',
        'controller' => 'foobar',
        'action' => 'foobar',
));

これ<catcher>はプレースホルダーでありarray('catcher'=>'.*')、正規表現に一致するキャッチャーを定義します.*

于 2013-03-20T19:35:22.023 に答える