我想重新映射一下:index.php/pages/services
进入此index.php/services
。
我想如何做到这一点?
我试过这个,但它不起作用:
$route['(:any)'] = 'pages/';
==更新==
这种方法有什么动态方法吗?因此,在classname
中没有url
的情况下,该类中的每个函数都会重新映射?
答案 0 :(得分:3)
为了将www.domain.com/services
映射到pages/services
,您会像:
$route['services'] = 'pages/services'
如果您想将www.domain.com/whatever
映射到pages/whatever
而whatever
有一些变体并且您有一些控制器,那么您可以这样做:
// create rules above this one for all the controllers.
$route['(:any)'] = 'pages/$1'
也就是说,您需要为所有控制器/操作创建规则,最后一个应该是一个包罗万象的规则,如上所述。
如果你有太多的控制器并且你想要解决这个特定的路线,你的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']
。
此外,上面没有经过测试,这只是一个让你入门的例子。