Codeigniter _remap 函数

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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 文件中还有其他事情要做吗? 谢谢 - 这有帮助。不过,我必须将所有模块路由到用户模块之上。

以上是关于Codeigniter _remap 函数的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV - remap() - 获取黑色像素

CI框架学习笔记

ImportError:导入 _remap 时 DLL 加载失败

在Codeigniter中搜索的分页不起作用

内存映射函数remap_pfn_range学习——示例分析

内存映射函数remap_pfn_range学习——示例分析