Если у меня есть маршрут, подобный этому:
Route::set('test', 'test')
->defaults(array(
'controller' => 'test',
'action' => 'index'
));
Я предполагал, что на этот маршрут будет отправлено только URL-адрес 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 и убедиться, что они действительно существуют?