【发布时间】:2014-07-08 04:54:33
【问题描述】:
我有一个 CI routes.php 如下。
$route['default_controller'] = "site";
$route['404_override'] = 'site';
$route['admin'] = 'admin';
$route[':any'] = 'site/user';
所需的事情是当任何用户名(我将使用数据库检查)输入 URL 时 - localhost/CIproj/username 然后它应该转到 site/user 控制器。
如果“管理员”在 URL 中,例如 - localhost/CIproj/admin,它将转到 admin 控制器(索引功能)。 URL 将更改为localhost/CIproj/admin/dashboard。
所以我得到的错误是当我转到localhost/CIproj/admin 时,我得到了登录屏幕。但登录后会转到admin/dashboard。这是我被重定向到site/user 的地方。
然后我尝试了以下一个。
$route['user/(:any)'] = 'site/user';
现在一切正常。但是 URL 会像 - localhost/CIproj/user/username。
所以问题是,有没有什么方法可以让我不必在 URL 中写 user。访问者可以在 URL 中键入任何内容。
localhost/CIproj/anything
如果anything== username from database,它将转到site/user。
如果anything== admin or any of its page 它将转到相应的控制器。
否则404pagenotfound.php。
注意:Admin 是一个包含许多控制器的巨大模块。所以我认为我不应该在这里为每个管理员控制器编写路由。
【问题讨论】:
标签: php codeigniter routes url-routing