Php codeigniter默认控制器url路由
我正在建立一个简单的网络站点,希望URL的工作方式类似于facebook,因此通过键入domain.com/username,我将获得一个用户配置文件。我已经可以这样做了 登录的用户配置文件位于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参数,以根据传递或未传递的内容显示不同的数据 我的问题是
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的更多信息。这里是链接