CodeIgniter doesn't map controllers to URLs, it maps URLs to controllers. See URI Routing.
You are trying to map two same exact URLs to go to different places. This doesn't make sense.
Also, since $route
is just an associative array, you are overwriting the value instead of adding an additional route.
$route['dashboard/(:any)'] = 'admin/crud/$1';
$route['dashboard/(:any)'] = 'admin/dashboard/$1'; //Immediately over writes the previous value
So, it looks like you just have a problem with the second route:
$route['dashboard/(:any)'] = 'admin/dashboard/$1';
Since, admin is the folder, double check that the value being passed in by the route actually is a method in your dashboard
controller class.
Also, check out this question and accepted answer: routing controllers in sub folders - codeigniter I think it provides an example of what you are attempting to do.