我正在寻找如何避免的建议
$route = array(
'directory' => 'accountdirectory/index',
'directory/(:any)' => 'accountdirectory/index/$1',
'directory/(:any)/(:num)' => 'accountdirectory/index/$1/$2' ...
如果可能的话,有一个更宽容的单一模式,如果所有路段都不存在,路线就不会中断:
'directory(/)?(:any)?(/)?(:any)' => 'accountdirectory/index/$1/$2'
路由
- 目录/全部
- 目录/
- 目录/all/10
您可以使用一条路线:
$route = array(
'directory' => 'accountdirectory/index',
...
)
定义accountdirectory/index函数如下:
public function index($arg1 = null, $arg2 = null) {
if ($arg === 'all' && $arg2 !== null) {
// directory/all/XXXX
}
elseif ($arg1 === 'all') {
// directory/all
}
else {
...
}
}
在您描述的情况下,我通常会做的是:
$route['404_override'] = 'directory';
然后,您可以在构造函数或索引函数中使用if或switch语句,根据其他uri段从那里重定向。