use*_*044 3 php codeigniter url-routing
我正在组建一个简单的网络站点,并希望 URL 的工作方式类似于 facebook,因此通过输入 domain.com/username 我将获得一个用户配置文件。我已经可以这样做了
登录用户个人资料
domain.com/
Run Code Online (Sandbox Code Playgroud)
其他用户个人资料在
domain.com/home/username
Run Code Online (Sandbox Code Playgroud)
默认控制器称为 home,我目前正在使用 _remap 函数检查额外的 url 参数,以根据传递或未传递的内容显示不同的数据。
我的问题是如何将其映射出来,以便我可以通过以下方式访问用户配置文件:
domain.com/username
Run Code Online (Sandbox Code Playgroud)
有我可以使用的 routes.php 设置吗?访问?
您应该在 config/routes.php 中添加以下规则
// Profile Route
$route['(:any)'] = 'home/$1';
Run Code Online (Sandbox Code Playgroud)
这会将您的所有请求重新路由到家庭控制器。
所以domain/michelle将重新路由,domain/home/michelle
但在这种情况下,您的所有请求都将重新路由到家庭控制器,例如。domain/pages/about也将被重新路由到domain/home/pages/aboutwich false。
domain/michelle => domain/home/michelle // TRUE
domain/pages/about => domain/home/pages/about // FALSE
Run Code Online (Sandbox Code Playgroud)
所以你必须在 Profile Route 之前为每个请求添加一个相同的规则,例如。$route['pages/(:any)'] = 'pages/$1';
把它们放在一起:
// Page Route
$route['pages/(:any)'] = 'pages/$1'
// Last Profile Route
$route['(:any)'] = 'home/$1';
Run Code Online (Sandbox Code Playgroud)