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

时间:2017-07-08 05:56:47

标签: php codeigniter routes

2 个答案:

答案 0 :(得分:2)

为了将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['PATH_INFO']或任何为您提供完整网址路径的组件,而不是$_SERVER['ORIG_PATH_INFO']。 此外,上面没有经过测试,这只是一个让你入门的例子。

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

答案 1 :(得分:1)

试试这个:

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