Si estás intentado utilizar las rutas dinámicas en los controladores de CodeIgniter y obtienes un error 404 en cualquier test dinámico pero el controlador sin variables sí funciona, aquí tienes la causa y la solución. Comprueba los síntomas:
Síntomas
- tusite.com/controlador-dinamico/ funciona, respondiendo con index()
- tusite.com/controlador-dinamico/variable1/variableN/ responde con**** error 404****
- La URL completa es correcta
- La configuración del .htaccess y routing dinámico está correctamente
Causa
Debes revisar el concepto de enrutado de CodeIgniter, consulta la documentación. La causa radica en que las variables dinámicas no están siendo recibidas como tales al controlador, sino que se intenta acceder a la variable1() como función del controlador.
Solución
Edita el fichero config/routes.php
y añade:
$route['**controlador-o-texto**/(:any)/(:any)'] = "controlador/funcion/$1/$2";
:num Si es variable numérica, únicamente
:any Si es variable de cualquier contenido (alfanumérico)