友好的个人资料网址与控制器混淆

时间:2012-03-04 15:50:06

标签: php codeigniter

我允许用户使用以下个人资料网址: domain.com/AwesomeUser

在我的路线中:

$route['(:any)'] = 'user';

我遇到的问题是我的控制器现在无法访问,我可以这样做:

$route['blog']    = 'blog';
$route['blog/(:any)'] = 'blog/$1';
$route['contact'] = 'contact';

对于我拥有的每个控制器和参数,但它只是不可靠,我想要更高效的东西,我还有一个包含控制器名称的数组,我想排除:

$reserved_names = array(
    'blog',
    'page',
    'contact'
);

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这可以帮到你

$reserved_names = array(
    'blog',
    'page',
    'contact'
);
foreach ($reserved_names as $name )
{
    $route[$name]    = $name;
    $route[$name.'/(:any)'] = $name.'/$1';
}

$route['(:any)'] = 'user';

答案 1 :(得分:1)

总是把你的通配符放在最后。 路由按照您定义它们的顺序工作,首先列出一个==首先调用一次。