我想重新映射 this:index.php/pages/services
到 thisindex.php/services
中。
我想怎么做?
我试过这个,但它不工作:
$route['(:any)'] = 'pages/';
== 更新 ==
这种方法有什么动态方法吗?因此,该类中的每个函数都将在没有classname
in的情况下重新映射url
?
我想重新映射 this:index.php/pages/services
到 thisindex.php/services
中。
我想怎么做?
我试过这个,但它不工作:
$route['(:any)'] = 'pages/';
== 更新 ==
这种方法有什么动态方法吗?因此,该类中的每个函数都将在没有classname
in的情况下重新映射url
?
为了映射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']
或使用任何为您提供完整 url 路径的组件。
此外,以上内容未经测试,仅作为入门示例。