Codeigniter - Error al llamar a un controlador y coloca la extencion xhtml

 
Vista:
sin imagen de perfil

Error al llamar a un controlador y coloca la extencion xhtml

Publicado por Juan Alexander (1 intervención) el 13/12/2017 18:29:39
Buenas tardes amigos


La situación que tengo es que al intentar llamar a un controlador como es lo correcto me aparece 404 Page Not Found. la llamada es la siguiente:

medico/doctor/historia_med

y cuando pulso el boton la url que muestra es

medico/doctor/historia_med.xhtml

y claro que no encuentra el controlador ya que al borrar manualmente el .xhtml se ve la pagina.


Investigue a ver si era configuracion del htacces: el que tengo configurado es el siguiente:

1
2
3
RewriteEngine on
RewriteCond $1 !^(index\.php|vendor|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Lo que me intriga es donde codeigniter le agrega la extencion xhtml para que no la agregue y poder encontrar el controlador.

Gracias por su valiosa colaboracion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema con la extensión .xhtml en las URL

Publicado por Alejandro (44 intervenciones) el 01/09/2023 22:36:07
El problema que estás experimentando, donde CodeIgniter agrega automáticamente la extensión `.xhtml` a la URL y luego resulta en un error 404, generalmente está relacionado con la configuración de rutas y la configuración del archivo `.htaccess`. Aquí hay algunas sugerencias para solucionar este problema:

1. Verifica las rutas en tu aplicación:
Asegúrate de que las rutas en tu aplicación CodeIgniter estén configuradas correctamente. En CodeIgniter, puedes definir rutas personalizadas en el archivo `application/config/routes.php`. Asegúrate de que la ruta `medico/doctor/historia_med` esté configurada correctamente. Debería verse algo como esto:

1
$route['medico/doctor/historia_med'] = 'medico/doctor/historia_med';

2. Verifica la configuración de `.htaccess`:
Tu configuración de `.htaccess` parece estar en orden para eliminar `index.php` de la URL, lo cual es correcto. Sin embargo, es importante asegurarse de que no haya otras reglas de reescritura que estén afectando las URL. Asegúrate de que no haya otros archivos `.htaccess` en directorios específicos que puedan estar influyendo en el comportamiento.

3. Configura la extensión predeterminada:
Si deseas que tus controladores se ejecuten sin necesidad de especificar una extensión, puedes configurar CodeIgniter para que use una extensión predeterminada en lugar de `.xhtml`. Puedes hacer esto en `application/config/config.php`. Busca la configuración ` $config['url_suffix']` y déjala en blanco:

1
$config['url_suffix'] = '';

Esto le indicará a CodeIgniter que no agregue ninguna extensión a las URL.

4. Revisa las redirecciones:
Verifica si tienes algún middleware, biblioteca o código personalizado en tu aplicación que esté realizando redirecciones con la extensión `.xhtml`. Esto podría estar ocurriendo en otra parte de tu aplicación.

5. Revisa el enlace HTML:
Asegúrate de que el enlace HTML o el botón que utilizas para llamar al controlador no incluyan la extensión `.xhtml` en su `href` o `action`. Debe ser algo como esto:

1
<a href="<?php echo base_url('medico/doctor/historia_med'); ?>">Ir a Historia Médica</a>

Si aún tienes problemas después de verificar estos puntos, es posible que haya otras configuraciones o código personalizado en tu aplicación que esté causando el problema. En ese caso, sería útil revisar el código y la configuración en busca de cualquier referencia a `.xhtml` y corregirla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar