当您只希望第一个细分受众群有效时,您就会遇到有关codeigniters路由的问题。在谷歌搜索时似乎没有找到一个好的答案。
所以我的常规页面有一条基本路线:
$route['(:any)'] = 'common/pages/view/$1';
Pages是类,视图是方法以及页面名称作为变量(非常类似于ci手册中的示例)。
我去的时候工作正常:
www.mysite.com/mypage/
然而,当我转到:
www.mysite.com/mypage/randomstring/
这也会加载mypage,这实际上是重复的。
他们是否有办法告诉任何路线只适用于第一段,如果存在更多,那么会做404?
如果情况变得更糟,我会在方法中添加一个检查以查看第二段是否存在,如果是,show_404但只是好奇它是否可以完全在路线中完成。
感谢阅读,我希望这是有道理的。
答案 0 :(得分:1)
试试这个:
$route['(:any)/(:any)'] = "none_existent_controller";
$route['(:any)'] = "common/pages/view/$1";
答案 1 :(得分:1)
你可以改用Regex吗?
$route['([^/]+)'] = 'common/pages/view/$1';
这会阻止您的域名包含/之后的URL,如果是,则会调用默认的404页面。
我没有测试过这个,但它“应该”起作用;)