Codeigniter 2路由与(:any)重复

时间:2012-07-19 11:43:21

标签: php routing duplicates codeigniter-2

当您只希望第一个细分受众群有效时,您就会遇到有关codeigniters路由的问题。在谷歌搜索时似乎没有找到一个好的答案。

所以我的常规页面有一条基本路线:

$route['(:any)'] = 'common/pages/view/$1';

Pages是类,视图是方法以及页面名称作为变量(非常类似于ci手册中的示例)。

我去的时候工作正常:

www.mysite.com/mypage/

然而,当我转到:

www.mysite.com/mypage/randomstring/

这也会加载mypage,这实际上是重复的。

他们是否有办法告诉任何路线只适用于第一段,如果存在更多,那么会做404?

如果情况变得更糟,我会在方法中添加一个检查以查看第二段是否存在,如果是,show_404但只是好奇它是否可以完全在路线中完成。

感谢阅读,我希望这是有道理的。

2 个答案:

答案 0 :(得分:1)

试试这个:

$route['(:any)/(:any)'] = "none_existent_controller";
$route['(:any)'] = "common/pages/view/$1";

答案 1 :(得分:1)

你可以改用Regex吗?

$route['([^/]+)'] = 'common/pages/view/$1';

这会阻止您的域名包含/之后的URL,如果是,则会调用默认的404页面。

我没有测试过这个,但它“应该”起作用;)