codeigniter 默认控制器 url 路由

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 设置吗?访问?

amd*_*amd 5

您应该在 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)