CodeIgniter - 如何在 url 路由中删除类名

Posted

技术标签:

【中文标题】CodeIgniter - 如何在 url 路由中删除类名【英文标题】:CodeIgniter - how to remove class name in url route 【发布时间】:2017-12-12 11:24:26 【问题描述】:

我有 http://localhost/CIrbbps/index.php/class_name/method_name 。如何删除类名?,所以我只能得到 http://localhost/CIrbbps/index.php/method_name 。谢谢

【问题讨论】:

请看这个链接,这个问题已经解决了点击here 【参考方案1】:

为了将www.domain.com/services 映射到pages/services,您可以这样:

$route['services'] = 'pages/services'

如果你想将www.domain.com/whatever 映射到pages/whatever 并且有一些变体并且你有一些控制器,那么你会这样做:

// 在此之上为所有控制器创建规则。

$route['(:any)'] = 'pages/$1'

也就是说,您需要为您的所有controllers/actions 创建规则,并且最后一个应该是一个包罗万象的规则,如上所述。

如果你有太多的控制器并且你想处理这个特定的路由,在你的routes.php文件中是安全的:

$path = trim($_SERVER['PATH_INFO'], '/');
$toMap = array('services', 'something');
foreach ($toMap as $map) 
    if (strpos($path, $map) === 0) 
       $route[$map] = 'pages/'.$map;
    

注意,您可能想尝试使用$_SERVER['ORIG_PATH_INFO'] 或任何为您提供完整url 路径的组件,而不是$_SERVER['PATH_INFO']。 另外,以上内容未经测试,仅供参考。

CodeIgniter Routes - remove a classname from URL for one class only

【讨论】:

【参考方案2】:

试试这个:

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

【讨论】:

以上是关于CodeIgniter - 如何在 url 路由中删除类名的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 url codeigniter 路由 htaccess 中的某些部分

我如何路由到控制器并在 codeigniter 中运行?

简单的 URL 路由不适用于 CodeIgniter

如何将所有XML扩展路由到特定方法codeigniter?

如何创建不覆盖其他控制器路由的 Codeigniter 路由?

CodeIgniter - 如何路由具有其他名称的控制器?