3

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

登录用户个人资料

domain.com/

其他用户个人资料位于

domain.com/home/username

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

我的问题是如何将其映射出来,以便我可以通过以下方式访问用户配置文件:

domain.com/username 

有没有可以使用的 routes.php 设置?访问?

4

3 回答 3

5

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

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

这会将您的所有请求重新路由到家庭控制器

所以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

所以你必须在 Profile Route 之前为每个请求添加一个相同的规则,例如。$route['pages/(:any)'] = 'pages/$1';

把它们放在一起:

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

// Last Profile Route
$route['(:any)'] = 'home/$1';
于 2012-08-13T06:13:06.487 回答
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
于 2012-08-13T06:15:38.253 回答
0

您可以通过修改 application/config 文件中的 routes.php 文件来做到这一点。要了解有关 routes.php 的更多信息。这是 Codeigniter 中的链接URI 路由

于 2012-08-13T09:19:10.883 回答