2014-01-10 125 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