【问题标题】:Codeigniter route not working for some linksCodeigniter 路由不适用于某些链接
【发布时间】:2018-03-16 02:58:18
【问题描述】:

我主要关心的是我在这里缺少什么。在我开始在网站上添加内容后,该路线非常适合我的测试,但它停止工作

$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)

如果我像http://mydomain/projects/view_project_task/1/8 一样访问它,它工作得非常好,如果我尝试像http://mydomain/projects/view/1/task/8 一样访问它,我会在某些链接上收到 404 错误,而它在其他链接上也能正常工作。

【问题讨论】:

    标签: php codeigniter mod-rewrite


    【解决方案1】:

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

    $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];
        };
    

    【讨论】:

    • 感谢您的回答,我今天会测试它并返回反馈
    • 嗨,我忘了添加你的一些条件,检查我编辑的答案
    猜你喜欢
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 2020-09-16
    相关资源
    最近更新 更多