Kohana 3.3全能路线

时间:2013-03-20 19:03:55

标签: php kohana routes

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

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。

1 个答案:

答案 0 :(得分:6)

这应该有效:

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

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