2012-09-18 61 views
0

您好我正在开发一个CodeIgniter应用程序,为用户提供自己的网站。在默认控制器中加载控制器方法,而无需参考URL中的控制器

我想完成的事情:如果用户有一个帐户,他们有自己的子域名(例如:user.website.com),并且默认控制器变成'user_website',如果网站正常访问(no子域名)默认的控制器是'网站'。

当用户访问他们的部分,我有一个名为“测试”

因此,例如,一个方法来访问该用户会去: user.website.com/user_website/test

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


所以基本上要问什么,我如何,我可以得到笨到是否有在控制器使用的接入方式的子域直接而不必p在URL中的控制器。

所以不是user.website.com/auth要去AUTH控制器,它将使用user_website控制器

的身份验证方法,如果有人可以帮助我如何做到这一点,或点我正确的方向,提前感谢。

此处还有来自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(); 
    } 

回答

1

您可以尝试一条路线,但您所要求的可能会变得复杂。我有这样

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

所以如果航线有人去user.website.com/test,就会将其路由到控制器user_website并调用该方法的测试,是你找什么呢?

+0

工作就像一个魅力,谢谢! – theprestig3

0

退房this NET TUTS非常方便的教程,它应该回答你的大部分问题。