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 函数的主要内容,如果未能解决你的问题,请参考以下文章