Попробуйте это (еще не проверено, но должно работать):
$route['greatPtroduct/(:any)'] = "specialController/specialFunction/$1";
Контроллер:
class specialController extends CI_Controller {
function specialFunction($method)
{
if(method_exists($this,$method))
{
$this->$method;
}
else
{
show_404;
}
}
UPDATE:
это более сложно. Маршрут как
$route['(:any)/(:any)'] = "specialController/specialFunction/$1";
будет работать, но он будет ловить ЛЮБОЙ контроллер, поэтому, если у вас есть другие в вашем приложении, вам нужно добавить их в белый список, чтобы избежать этого. Пример:
$route['contact'] = "contact";
$route['about'] = "about";
// and so on
$route['(:any)/(:any)'] = "specialController/specialFunction/$1";