codeigniter中控制器之前的自定义字符串

时间:2017-01-05 13:43:12

标签: php codeigniter routing codeigniter-3

我的目标是在所有其他路线之前的USERNAME:

https://my.exaple.com/USERNAME/controller/function/val1/val2

我的网站已经运行了aprox 50路线。 我知道我必须把routes.php放到这样的东西:

$route[(:any)/controller]

但这意味着重写控制器中的所有重定向。

我不想重写它们,添加这个非常小的功能。

可以动态地以某种方式传递此参数,所以我不能更改所有控制器吗?

1 个答案:

答案 0 :(得分:0)

为了将USERNAME添加到所有重定向,您可以创建自定义网址帮助程序,从system/helpers/url_helper.php获取并修改redirect函数(伪代码):

if ( ! function_exists('redirect'))
{
    ...

    // Let's add here username to the start of the url
    $uri = get_instance()->user_model->get_username() . "/" . $uri;

    switch ($method)
    {
        case 'refresh':
            header('Refresh:0;url='.$uri);
            break;
        default:
            header('Location: '.$uri, TRUE, $code);
            break;
    }

    ...

}