Php Codeigniter路由对某些链路不起作用

Php Codeigniter路由对某些链路不起作用,php,codeigniter,mod-rewrite,Php,Codeigniter,Mod Rewrite,我主要关心的是我在这里遗漏了什么。在我开始在网站上添加内容后,这条路线对我测试的内容非常有效,但它停止了工作 $route['projects/view/([A-Za-z0-9])/task/([A-Za-z0-9])'] = 'Projects/view_project_task/$1/$2'; 模型中的函数定义如下: public function view_project_task($project_id, $project_task_id) 如果我像这样访问它工作得很好,如果我像这样

我主要关心的是我在这里遗漏了什么。在我开始在网站上添加内容后,这条路线对我测试的内容非常有效,但它停止了工作

$route['projects/view/([A-Za-z0-9])/task/([A-Za-z0-9])'] = 'Projects/view_project_task/$1/$2';
模型中的函数定义如下:

public function view_project_task($project_id, $project_task_id)

如果我像这样访问它工作得很好,如果我像这样尝试访问,我在一些链接上遇到404错误,而在其他链接上它工作得很好。

如果你尝试在路由中使用回调

$route['projects/(.+)'] = function ($params)
    {
            $return = explode('/', $params);
            //here you need to count how many params has to know if your url
            //is like 1/8 -> [0]=>view_project_task [1]=>1 [2]=>8 
            //or like 1/task/8 [0]=>view [1]=>1 [2]=>task [3]=>8
            return 'projects/view_project_task/' . strlower($return[1]) . '/' . ( count($return > 3)) ? $return[3] : $return[2];
    };

谢谢你的回答,我今天会测试它,然后带着反馈回来嗨,我忘了添加一些条件了,请检查我编辑的答案