所以在这个codeigniter
安装中,我有一个名为user
的控制器。在index()
我接受一个user_name并显示该用户的个人资料。
class User extends CI_Controller
{
function index($user_name)
{
//show user profile...
}
}
这很好用。但是,要查看个人资料,访问者必须访问:<site>/user/john_doe
我希望网址为<site>/john_doe
。我知道使用controller/function/arg
的默认codeigniter
设置无法做到这一点。我可以在routes
中对此进行映射,以便在访问者键入<site>/john_doe
时,系统会识别出没有名为john_doe
的控制器,它会在内部呈现<site>/user/john_doe
(但它应保留原始版本)短网址
此外,如果用户创建一个名为user的用户名已经是一个有效的控制器,会产生副作用...但我猜这是次要问题(可以将所有控制器名称作为关键字阻止,因此用户不能注册其中一个)
答案 0 :(得分:1)
您可以将以下规则放在路由文件的底部。
$route['/(:any)'] = "/user/index/$1";
将此规则放在底部是绝对重要的。如果你把它放在最上面,你输入的所有URL都将匹配用户/索引控制器。