Php codeigniter默认控制器url路由

Php codeigniter默认控制器url路由,php,codeigniter,url-routing,Php,Codeigniter,Url Routing,我正在建立一个简单的网络站点,希望URL的工作方式类似于facebook,因此通过键入domain.com/username,我将获得一个用户配置文件。我已经可以这样做了 登录的用户配置文件位于 domain.com/ domain.com/home/username 其他用户资料,请访问 domain.com/ domain.com/home/username 默认控制器名为home,我目前正在使用_remap函数检查额外的url参数,以根据传递或未传递的内容显示不同的数据 我的问题是

我正在建立一个简单的网络站点,希望URL的工作方式类似于facebook,因此通过键入domain.com/username,我将获得一个用户配置文件。我已经可以这样做了

登录的用户配置文件位于

domain.com/
domain.com/home/username
其他用户资料,请访问

domain.com/
domain.com/home/username
默认控制器名为home,我目前正在使用_remap函数检查额外的url参数,以根据传递或未传递的内容显示不同的数据

我的问题是,我将如何规划这一点,以便通过以下方式访问用户配置文件:

domain.com/username 

我可以使用routes.php设置吗?htaccess?

您应该在config/routes.php中添加以下规则

// Profile Route
$route['(:any)'] = 'home/$1';
这将把您的所有请求重新路由到主控制器

因此,
domain/michelle
将被重新路由为
domain/home/michelle
但是在这种情况下,您的所有请求都将被重新路由到主控制器 例如,
domain/pages/about
也将被重新路由到
domain/home/pages/about
which false

domain/michelle => domain/home/michelle // TRUE
domain/pages/about => domain/home/pages/about // FALSE
因此您必须在配置文件路由之前为每个请求添加一个相同的规则, 例如,
$route['pages/(:any)]='pages/$1'

总而言之:

// Page Route 
$route['pages/(:any)']  = 'pages/$1'

// Last Profile Route
$route['(:any)'] = 'home/$1';

在Codeigniter中,这不是最容易做到的事情。 为此,首先需要定义routes.php中使用的所有路由,并在文件末尾添加行,该行将向控制器发送所有其他请求,以检查用户是否存在

$route['stores/(:any)'] = 'stores/$1';
$route['pages/(:any)'] = 'pages/$1'; 

$route['(:any)'] = "home/$1"; //this route will return user's page

您可以通过修改application/config文件中的routes.php文件来实现这一点。了解有关routes.php的更多信息。这里是链接