1
如果我有这样的路线:Kohana的3个路由和查询字符串
Route::set('test', 'test')
->defaults(array(
'controller' => 'test',
'action' => 'index'
));
我以为,只有网址mysite.com/test或mysite.com/test/将被送到这条路线,任何事情否则将被发送到默认路由,或者如果你有一条路由,则捕获所有路由。但是,您可以添加任何查询字符串,并且它仍然有效。例如,任何这些将工作:
mysite.com/test/?abc
mysite.com/test/?abc=123
mysite.com/test/?abc=123&blabla=lala
任何你想要的基本上。我该如何设置它,以便测试路径与查询字符串的URL不匹配?另一个例子是这样的:
Route::set('test', 'test(/?order=<order>)', array('order' => 'title|date|author'))
->defaults(array(
'controller' => 'test',
'action' => 'index'
'order' => 'title'
));
在这个例子中,我会承担的唯一的URL匹配这条路线将是:
mysite.com/test/?order=title
mysite.com/test/?order=date
mysite.com/test/?order=author
但像以前一样,你可以添加其他任何的查询字符串你要。
有没有办法让这些无效的查询字符串传递到捕获所有的路线,他们将被发送到404页面?或者我是否真的必须通过我的所有控制器并对$ _GET进行检查并确保它们确实存在?