2012-08-13 198 views
2

我正在放置一個簡單的網絡站點,並希望有類似的Facebook的網址,所以通過輸入domain.com/username我會得到一個用戶配置文件。我能做到這一點已經這樣codeigniter默認控制器網址路由

登錄的用戶配置文件在

domain.com/ 

其他用戶在

domain.com/home/username 

配置文件的默認控制器打電話回家我目前使用的_remap功能檢查爲額外的url參數顯示基於什麼或不通過的不同數據。

我的問題是我怎麼會映射了這一點,所以我可以通過訪問用戶配置文件:

domain.com/username 

是否有routes.php文件設置,我可以使用? htaccess的?

回答

4

,你應該在你的配置添加以下規則/ routes.php文件

// Profile Route 
$route['(:any)'] = 'home/$1'; 

這將重新路由所有你的要求給家庭控制器

所以domain/michelle將重新被重新路由爲domain/home/michelle 但在這種情況下,所有的請求都將被重新路由到歸屬控制器 如。 domain/pages/about也將被重新路由到domain/home/pages/about這個假。

domain/michelle => domain/home/michelle // TRUE 
domain/pages/about => domain/home/pages/about // FALSE 

所以你必須添加每個配置文件路徑, 如前要求同文的規則。 $route['pages/(:any)'] = 'pages/$1';

把它放在一起:

// Page Route 
$route['pages/(:any)'] = 'pages/$1' 

// Last Profile Route 
$route['(:any)'] = 'home/$1'; 
+0

好的非常感謝我會給這個鏡頭 – user975044 2012-08-13 16:30:18

1

這不是笨最容易做的事情。 要做到這一點,您首先需要定義您在routes.php中使用的所有路由,並在需要添加行的文件末尾發送所有其他請求到控制器,以檢查用戶是否存在。

$route['stores/(:any)'] = 'stores/$1'; 
$route['pages/(:any)'] = 'pages/$1'; 

$route['(:any)'] = "home/$1"; //this route will return user's page