So after reading this question on API versioning, I decided to prefix all my routes with a version number:
http://localhost/api/1.0/user/login
Do you have the (.) in your
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
And what is your controller name ?
I think you must have the controller name in your route before the method name.
Something like this :
$route['controller_name/1.0/user/(:any)'] = ...