如何定义捕获所有请求并将其转发到特定控制器的路由?我已经尝试添加默认路由
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。
答案 0 :(得分:6)
这应该有效:
Route::set('foobar', '<catcher>',array('catcher'=>'.*'))
-> defaults(array(
'directory' => 'site',
'controller' => 'foobar',
'action' => 'foobar',
));
<catcher>
是一个占位符,array('catcher'=>'.*')
定义捕手以匹配正则表达式.*