Кохана 3.3 универсальный маршрут


Как я могу определить маршрут, который будет перехватывать все запросы и пересылать их одному конкретному контроллеру? Я уже пытался добавить маршрут по умолчанию

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.

Author: Mateusz, 2013-03-20

1 answers

Это должно сработать:

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

Он <catcher> является заполнителем и array('catcher'=>'.*') определяет ловушку, соответствующую регулярному выражению .*

 6
Author: ITroubs, 2013-03-20 19:35:22