3

我必须更改www.sample.com/users/user/usernamewww.sample.com/username,但是当我转到 sitename/username它时会显示 404 页面。我试图路由,和uri->segment,但我无法让它工作。请帮我解决这个问题!

4

2 回答 2

3

将此行添加到您的config/routes.php文件中。

$route['(:any)'] = "users/user/$1";

请注意,如果您这样做,则必须手动添加例外以使其他控制器/操作正常工作。所以如果你有一个帖子控制器,你的路由文件现在是:

$route['posts'] = "posts";
$route['posts/(:any)'] = "posts/$1";
$route['(:any)'] = "users/user/$1";

而且您必须为您拥有的不是用户/用户的每个控制器/操作执行此操作。您还必须防止用户名与您的其他控制器/操作同名。

于 2009-08-16T16:45:42.570 回答
0

在您的system/application/config/routes.php中,添加以下内容:

$route['^(?!<otherController1>|<otherController2>).*'] = "users/user/$1";

请注意,您需要将 替换<otherController1>|<otherController1>为您的其他实际控制人的实际名称,例如:

$route['^(?!welcome|post).*'] = "users/user/$1";

而且因为您不希望用户控制器的其他方法与用户名冲突,所以我们需要路由所有其他用户控制器方法。例如:

$route['user/subscribe']            = "user/subscribe";
$route['user/username_exists']      = "user/username_exists";
$route['user/email_exists']         = "user/email_exists";
$route['user/signup']               = "user/signup";
于 2009-08-29T16:11:15.127 回答