如何在CodeIgniter中更改URL?

时间:2009-08-16 15:18:24

标签: php codeigniter http-status-code-404

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

2 个答案:

答案 0 :(得分:3)

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

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

请注意,如果执行此操作,则必须手动添加其他控制器/操作的例外才能生效。因此,如果您有一个帖子控制器,您的路线文件现在是:

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

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

答案 1 :(得分:0)

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

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

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

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

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

$route['user/subscribe']            = "user/subscribe";
$route['user/username_exists']      = "user/username_exists";
$route['user/email_exists']         = "user/email_exists";
$route['user/signup']               = "user/signup";