【问题标题】:CodeIgniter Custom Router helpCodeIgniter 自定义路由器帮助
【发布时间】:2011-09-20 11:59:57
【问题描述】:

对 CI 很陌生,所以我想知道下面列出的一项功能将通过 CI Router 完成,那么如何?

特点:

第一季度。我需要以mysite.com/johhn mysite.com/raju.radha 的方式显示我的用户资料 mysite.com/johhn1

第二季度。其他网址为mysite.com/photo/3434mysite.com/album/3443等。

我知道这可以通过使用 $route 来实现。对于第二季度,这是解决方案

$route['photo/:num'] = "photo/photo_list";
$route['album/:num'] = "album/album_list";

Q1 的解决方案是什么?

提前致谢!!!

【问题讨论】:

    标签: codeigniter frameworks url-rewriting url-routing codeigniter-url


    【解决方案1】:

    路线:

    $route['(:any)'] = "profile/view/$1";
    

    控制器:

    class Profile extends CI_Controller {
        function view($username) {
            echo $username;
        }
    }
    

    编辑:评论者提出了重要的一点,即这需要成为文件中的最后一个路由指令,以防止它覆盖所有其他路由规则。

    【讨论】:

    • 值得注意的是,您需要将其放在您定义的任何其他路由之后,因为它们按照定义的顺序运行,因此如果先出现,原始路由将不会运行。但除此之外 +1。
    • 与我的 Q1 和 Q2 组合时的顺序是什么?有什么想法吗?
    • @coderex $route['(:any)'] = "profile/view/$1"; 将始终是路由器配置文件中的最后一条路由。其他两个可以按任何顺序排列,只要它们出现在$route['(:any)'] = ... 之前。
    • 好吧,我明白了。嗯,我需要从用户名中保留更多 n 个关键字:)。谢谢你的回答
    • 请记住,使用 catch-all 路由将覆盖 404_override 路由,因为所有请求都会匹配。您需要使用 show_404() 手动解决 404 错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多