2012-09-18 56 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非常方便的教程,它應該回答你的大部分問題。