使用Kohana路由重定向

时间:2014-05-13 13:11:35

标签: redirect routes kohana kohana-3

我正在使用Kohana Framework 3.2

通常在我的bootstrap文件中,我可以像这样设置一个Route :: set:

Route::set('faq', 'faq')->defaults(array('controller' => 'home', 'action' => 'faq'));

这样做example.com/faq指向我的控制器主页,动作常见问题。

我想知道我是否也可以这样设置重定向?

所以我可以说example.com/faq应该重定向到example.com/thegreatfaqs?

或者必须使用如上所述的route :: set到然后请求重定向到/ thegreatfaqs的控制器?

3 个答案:

答案 0 :(得分:1)

Kohana没有内置任何东西来处理路线内的重定向。

我通常做的是路由到一个具有所有重定向规则的重定向控制器,并在那里处理重定向。

答案 1 :(得分:1)

您可以使用Route filter执行此操作,但我认为这是 错误想法 ,因为您正在中断Kohana应用程序的正常流程。

Route::set('redirecturl', 'redirecturl')
->filter(function($route, $params, $request) {
    header('Location: http://www.example.com/');
    exit;
});

我建议使用Redirect rule(Apache .htaccess)或来自Scott提到的专用控制器操作的重定向,这是一个更清晰的解决方案。

答案 2 :(得分:0)

您可以像这样设置路线....>

Route::set('faq', 'thegreatfaqs(/<action>(/<id>))')
->defaults(array(
    'controller'    => 'home',
    'action'    => 'faq',
));