Kohana 3.3全能路线

Mat*_*usz 3 php routes kohana

如何定义将捕获所有请求并将其转发到一个特定控制器的路由?我已经尝试添加默认路由了

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

要么

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

到我的bootstrap.php,但它不起作用.键入localhost/a之后我得到了

Unable to find a route to match the URI: a
Run Code Online (Sandbox Code Playgroud)

要么

The requested URL a was not found on this server.
Run Code Online (Sandbox Code Playgroud)

错误.我确信控制器是有效的,如

Route::set('foobar', 'foo') 
    -> defaults(array(
        'directory' => 'site',
        'controller' => 'foobar',
        'action' => 'foobar',
));
Run Code Online (Sandbox Code Playgroud)

工作良好.

我正在使用Kohana 3.3.

ITr*_*ubs 6

这应该工作:

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

<catcher>是一个占位符,array('catcher'=>'.*')定义捕获器以匹配正则表达式.*