Я бы не отказался от маршрутизации так быстро.Метод контроллера не должен быть вторым параметром в URL.Если вы возьмете пример того, как выглядит URL-адрес http://mysite.com/phones/samsung/ABCD/, то внутри файла rout.php вы можете сделать
$ route ['phones / (: any) / (: any) '] = "phones / blah / $ 1 / $ 2";
Внутри вашего контроллера "Телефоны" у вас есть функция "blah" (вероятно, хорошо переименовать ее), и производитель телефона будетпервый параметр и модель телефона будут вторым параметром.Это будет работать со всеми производителями и всеми моделями.Вам не придется иметь другой контроллер или метод в зависимости от различных комбинаций.
Если это не всегда будут телефоны (например, это может быть планшет), и у вас может быть URL-адрес, такой как http://mysite.com/tablet/samsung/ABCD/, тогда ваш файл rout.php должен быть чем-то вроде $ route ['(: any) / (: any) / (: any)'] = "что-то / blah / $ 1 / $ 2 / $ 3";Тогда контроллер «Что-то» будет иметь функцию «бла», которая будет передаваться электронному типу (телефон, планшет и т. Д.), Производителю и модели.
Чтобы сделать это еще проще, как сказал @Stewie, вы можете использовать _remap ().Руководство пользователя содержит хорошую документацию и примеры того, как его использовать http://codeigniter.com/user_guide/general/controllers.html#remapping