0

您好我正在开发一个 CodeIgniter 应用程序,为用户提供他们自己的网站。

我要完成的工作:如果用户有一个帐户,他们有自己的子域(例如:user.website.com),并且默认控制器变为“user_website”,如果网站可以正常访问(无子域)默认控制器是“网站”。

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

因此,要访问该用户,请访问:user.website.com/user_website/test

我想要发生的是:user.website.com/test


所以基本上我要问的是,如果有一个子域在使用中直接访问控制器的访问方法,而无需将控制器放在 url 中,我该如何获取 codeigniter。

因此,它不会使用 user.website.com/auth 去 auth 控制器,而是使用 user_website 控制器的 auth 方法

如果有人可以帮助我解决这个问题,或者指出我正确的方向,在此先感谢。

这里还有来自 MY_Controller 的 _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();
    }
4

2 回答 2

1

您可以尝试一条路线,但您要问的可能很复杂。我有这样的路线

$route['(:any)'] = "user_website/$1";

因此,如果有人访问 user.website.com/test,它会将他们路由到控制器 user_website 并调用方法 test,这就是您要找的吗?

于 2012-09-18T23:29:37.743 回答
0

看看这个来自 NET TUTS 的非常方便的教程,它应该能回答你的大部分问题。

于 2012-09-18T23:31:47.213 回答