我正在尝试使用CodeIgniter 2创建一个URL缩短器。
我有2个控制器:main
和api
。
要通过路由器重定向短链接,我在config/routes
中使用此设置:
$route['(.*)'] = "main/$1";
以及main
控制器中应该工作的方法。但是,控制器无法启动。请帮我解决这个问题。
答案 0 :(得分:1)
您的控制器“任何”未被调用,因为它属于该正则表达式,因此它被路由到main。 为了从此规则中排除“任何”,您需要为此创建一个特殊规则,请记住,CI规则是级联,因此它们按照它们呈现的顺序执行< / p>
注意:路线将按顺序运行 他们是定义的。更高的路线将 总是优先于低 的。
所以,你会:
// reserved routes must come before custom routes
$route['default_controller'] = "home";
$route['404_override'] = '';
$route['any'] = //your rule here. maybe "any". ?
$route['(.*)'] = "main/$1"; // CI also provides you with `(:any)` rule, that mateches any character.
有关此内容的更多信息:Uri routing