3

我现在像这样在我的 codeigniter 配置中设置 uri 路由

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

像这样的请求一切正常

http://localhost/user/1

但如果我尝试请求

http://localhost/user/

所以uri段是空的,我收到错误

404 Page Not Found
The page you requested was not found.

如何避免这种情况?我试过用

$user = $this->uri->segment(2);
if (!isset($user)) redirect('/', 'refresh');

但这不起作用。

4

4 回答 4

4

在你的控制器中构建你的函数而不是这个:

public function index()
{
...

尝试这样的事情:

public function index($slug = '')
{

if ($slug = '') {
   // redirect code here
}
else {
   // if there is something in $slug then load this code
}

也许你的路线应该是这样的:

$route['user'] = 'users';
$route['user/(:any)'] = 'users/index/$1';
于 2013-03-16T12:10:53.553 回答
4

您可以添加另一条路线,例如:

$route['user'] = "users"
于 2013-03-16T12:06:43.397 回答
1

我认为您需要修复语法,请尝试:

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

您需要在通配符周围加上括号(:any)

参考:http ://ellislab.com/codeigniter/user-guide/general/routing.html 查看示例

于 2013-03-16T12:09:45.713 回答
1

尝试

$route['user:any'] = "users";
于 2013-03-16T12:06:13.847 回答