【问题标题】:Codeigniter _remap functionCodeigniter _remap 函数
【发布时间】:2011-04-06 14:16:43
【问题描述】:

请帮助我想在我的 CodeIgniter 网站中使用第一个 URI 段。

就像当我打开这些网址时,它们会打开我的个人资料: http://www.facebook.com/buddyforever 要么 http://www.myspace.com/zarpio

如何使用 CodeIgniter 做到这一点?我检查了_remap 函数,但是第一个控制器如何隐藏控制器?

【问题讨论】:

    标签: url codeigniter codeigniter-url


    【解决方案1】:

    您可以使用 codeigniter 的 URL 路由来做到这一点...

    如果您希望您的 URL 为 http://www.mydomain.com/zarpio 并且您希望它引用 your_controller,请执行以下操作。

    /config/routes.php

    $route['(.*)'] = "your_controller/$1"; // Now, `zarpio` will be passed to `your_controller`
    

    您可以像这样在控制器中访问它...

    $my_name = $this->uri->rsegment(2);
    

    但是我不建议使用这种配置 URL 的方式。更好的方法是......

    $route['users/(.*)'] = "your_controller/$1";
    

    这样,您只需将控制器名称 your_controller 重命名为 users

    如果你想访问用户的个人资料,你可以这样做......

    $route['users/profile/(.*)'] = "another_controller/method/$1";
    $route['users/(.*)'] = "your_controller/$1";
    

    考虑路由的顺序。由于您在路由中写了users/(.*),它将匹配users/zarpio 以及users/profile/zarpio,并将它们都路由到your_controller/$1,在配置文件的情况下会给您一个404 page not found 错误。这就是为什么您需要在路由配置中在users/(.*) 之前编写users/profile/(.*)

    更多信息在codeigniter URI class documentation

    【讨论】:

    • 拜托,你能给我完整的教程吗?
    • 谢谢 ShiVik 我做到了。你是天才
    • @ShiVik 你能解决我的另一个问题吗?我正在使用 $route['(.*)'] = "your_controller/$1";进入我的 routes.php 现在的问题是,当我转到 www.mydomain.com/myanothercontroller/method... 404 Page Not Found 来...在 config/routes.php 文件中还有其他事情要做吗?
    • 谢谢 - 这有帮助。不过,我必须将所有模块路由到用户模块之上。
    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2012-03-09
    相关资源
    最近更新 更多