Php 在默认控制器上加载控制器方法而不引用URL中的控制器
嗨,我正在开发一个CodeIgniter应用程序,为用户提供自己的网站 我试图做到的是:如果一个用户有一个帐户,他们有自己的子域(例如:user.website.com),默认控制器变成“user\u-website”,如果该网站正常访问(没有子域),默认控制器就是“website” 当用户访问他们的部分时,我有一个方法,例如“test” 因此,要访问用户将要访问的: user.website.com/user\u website/test 我希望发生的是: user.website.com/testPhp 在默认控制器上加载控制器方法而不引用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知道是否有一个子域正在使用直接访问控制器的方法,而不必将控制器放在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提供的非常方便的教程,它会回答您的大部分问题