Php 在默认控制器上加载控制器方法而不引用URL中的控制器

Php 在默认控制器上加载控制器方法而不引用URL中的控制器,php,codeigniter,routing,Php,Codeigniter,Routing,嗨,我正在开发一个CodeIgniter应用程序,为用户提供自己的网站 我试图做到的是:如果一个用户有一个帐户,他们有自己的子域(例如:user.website.com),默认控制器变成“user\u-website”,如果该网站正常访问(没有子域),默认控制器就是“website” 当用户访问他们的部分时,我有一个方法,例如“test” 因此,要访问用户将要访问的: user.website.com/user\u website/test 我希望发生的是: user.website.com/t

嗨,我正在开发一个CodeIgniter应用程序,为用户提供自己的网站

我试图做到的是:如果一个用户有一个帐户,他们有自己的子域(例如:user.website.com),默认控制器变成“user\u-website”,如果该网站正常访问(没有子域),默认控制器就是“website”

当用户访问他们的部分时,我有一个方法,例如“test”

因此,要访问用户将要访问的: user.website.com/user\u website/test

我希望发生的是: user.website.com/test


因此,基本上我要问的是,我如何让codeigniter知道是否有一个子域正在使用直接访问控制器的方法,而不必将控制器放在url中

因此,与user.website.com/auth转到auth控制器不同,它将使用user\u网站控制器的auth方法

如果有人能帮我完成这件事,或者给我指出正确的方向,请提前感谢

这里还有来自MY_控制器的_remap函数,我的所有控制器都扩展了该函数

public function _remap($method, $arguments)
    {

        if (method_exists($this, $method))
        {
            call_user_func_array(array($this, $method), array_slice($this->uri->rsegments, 2));
        }
        else
        {
            show_404(strtolower(get_class($this)).'/'.$method);
        }

        $this->_load_view();
    }

你可以尝试一条路线,但你所要求的可能太复杂了。我有这样的路线

$route['(:any)'] = "user_website/$1";
因此,如果有人访问user.website.com/test,它会将他们发送到controller user_网站,并调用方法测试,这就是您要找的吗?

请查看NET TUTS提供的非常方便的教程,它会回答您的大部分问题