2014-01-10 143 views
4

我正在開發一個使用CI的網站,今天我在管理部分遇到問題。CodeIgniter路由 - 404錯誤

我有一個管理員,我可以管理用戶

我的應用程序的結構是:

controllers/admin/users.php 

在users.php我有一些功能:index(), view($id), login(), edit($id)

views/admin/users/index.php 
views/admin/users/view.php 
views/admin/users/login.php 
views/admin/users/edit.php 

訪問登錄頁面的網址是:

www.mysite.com/admin/login 

訪問用戶列表中的網址是:

www.mysite.com/admin/users 

查看特定用戶(id=5)的網址是:除了編輯功能 www.mysite.com/admin/users/5

一切運作良好,我得到了一個網址當我打電話www.mysite.com/admin/edit/5

這裏是我的路由規則:

$route['admin/users/(:any)'] = 'admin/users/view/$1'; 
$route['admin/users'] = 'admin/users'; 

$route['admin/users/login'] = 'admin/users/login'; 

$route['admin/users/edit/(:num)'] = 'admin/users/edit/$1'; 

$route['admin'] = 'admin/users/login'; 

我想念什麼?哪裏不對?

+0

你可能想看看重新映射函數調用。 http://ellislab.com/codeigniter%20/user-guide/general/controllers.html#remapping 這可以幫助您避免使用路由。 – andershagbard

回答

2

嘗試把它更高的序列中,由於路由匹配從上到下:

$route['admin'] = 'admin/users/login'; 
$route['admin/users'] = 'admin/users'; 
$route['admin/users/login'] = 'admin/users/login'; 
$route['admin/users/edit/(:num)'] = 'admin/users/edit/$1'; 
$route['admin/users/(:any)'] = 'admin/users/view/$1'; 

:any可能趕上太多,干擾,我會離開它作爲最後捕獲所有航線所有那些未指定的。

+0

完美的作品! molte grazie Damien! – user3129131

+0

Prego! :)如果您發現此答案可解決您的問題,請考慮使用投票計數下的粗體標記將其標記爲「已接受」,以便向將來的讀者展示解決方案 –

0
$route['admin/users/(:any)'] = 'admin/users/view/$1'; 
$route['admin/users'] = 'admin/users'; 

$route['admin/users/login'] = 'admin/users/login'; 

$route['admin/edit/(:any)'] = 'admin/edit/view/$1'; 

$route['admin'] = 'admin/users/login'; 

試試這個你可能會收到迴應!

+0

否,它不起作用。 – user3129131