El panel no dispone de un router PHP propio. En su lugar, delega la traducción de URLs limpias al móduloDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/jpbarbatic/webapp/llms.txt
Use this file to discover all available pages before exploring further.
mod_rewrite de Apache. Las reglas definidas en public/.htaccess interceptan las peticiones antes de que PHP entre en juego y las redirigen internamente al controlador PHP correspondiente. Las URLs que no coinciden con ninguna regla se resuelven directamente como ficheros dentro de public/.
Reglas de reescritura
El contenido completo del ficheropublic/.htaccess es:
-
Options -Indexes— Desactiva el listado de directorios. Si un usuario accede a una URL que corresponde a un directorio sinindex.php, Apache devolverá un 403 en lugar de mostrar los ficheros del directorio. -
RewriteRule ^([a-z]+)/([0-9]+)$— Captura URLs del patrónmodulo/numero(por ejemplo/productos/42) y las reescribe internamente amodulo/editar.php?id=numero(es decir,productos/editar.php?id=42). El flag[QSA,L]conserva los parámetros GET existentes y detiene el procesado de reglas posteriores. -
RewriteRule ^([a-z]+)/nuevo$— Captura URLs del patrónmodulo/nuevo(por ejemplo/productos/nuevo) y las reescribe amodulo/nuevo.php(es decir,productos/nuevo.php). Aplica los mismos flags[QSA,L]. -
ErrorDocument 404yErrorDocument 403— Redirigen los errores 404 (recurso no encontrado) y 403 (acceso denegado) aerror.php, que muestra una página de error personalizada.
Mapa de rutas
La siguiente tabla muestra todas las rutas activas del panel, los métodos HTTP que admiten, el controlador PHP al que se resuelven y su función:| URL | Método | Controlador PHP | Descripción |
|---|---|---|---|
/ | GET | public/index.php | Punto de entrada: redirige a dashboard/ si hay sesión, muestra login si no |
/login.php | POST | public/login.php | Procesa el formulario de autenticación |
/logout.php | GET | public/logout.php | Destruye la sesión y redirige al login |
/dashboard/ | GET | public/dashboard/index.php | Pantalla principal del panel |
/productos/ | GET | public/productos/index.php | Listado paginado de productos con filtros |
/productos/nuevo | GET | public/productos/nuevo.php | Formulario de creación de producto |
/productos/{id} | GET | public/productos/editar.php?id={id} | Formulario de edición del producto con ese ID |
/productos/guardar.php | POST | public/productos/guardar.php | Inserta o actualiza un producto |
/productos/borrar.php | POST | public/productos/borrar.php | Elimina un producto |
/productos/subir_fotos.php | POST | public/productos/subir_fotos.php | Sube imágenes asociadas a un producto |
/productos/exportar.php | GET | public/productos/exportar.php | Exporta el listado de productos |
/categorias/ | GET | public/categorias/index.php | Listado de categorías |
/categorias/nuevo | GET | public/categorias/nuevo.php | Formulario de creación de categoría |
/categorias/{id} | GET | public/categorias/editar.php?id={id} | Formulario de edición de la categoría con ese ID |
/categorias/guardar.php | POST | public/categorias/guardar.php | Inserta o actualiza una categoría |
/categorias/borrar.php | POST | public/categorias/borrar.php | Elimina una categoría |
/usuarios/ | GET | public/usuarios/index.php | Listado de usuarios (requiere permiso usuarios.consulta) |
/usuarios/nuevo | GET | public/usuarios/nuevo.php | Formulario de creación de usuario |
/usuarios/{id} | GET | public/usuarios/editar.php?id={id} | Formulario de edición del usuario con ese ID |
/usuarios/crear.php | POST | public/usuarios/crear.php | Inserta un nuevo usuario y redirige a su formulario de edición |
/usuarios/guardar.php | POST | public/usuarios/guardar.php | Actualiza los datos de un usuario existente |
/usuarios/borrar.php | POST | public/usuarios/borrar.php | Elimina un usuario |
/usuarios/guardar_foto.php | POST | public/usuarios/guardar_foto.php | Sube la foto de perfil del usuario |
/usuarios/guardar_password.php | POST | public/usuarios/guardar_password.php | Cambia la contraseña de un usuario |
/roles/ | GET | public/roles/index.php | Listado de roles |
/roles/{id} | GET | public/roles/editar.php?id={id} | Formulario de edición del rol con ese ID |
/roles/guardar.php | POST | public/roles/guardar.php | Actualiza un rol |
/permisos/ | GET | public/permisos/index.php | Listado de permisos del sistema |
Manejo de errores
Cuando Apache no encuentra un recurso (404) o el acceso está prohibido (403), las directivasErrorDocument del .htaccess envían la petición a public/error.php. Este controlador de errores:
- Carga
config.phppara disponer de la constanteURL_BASE. - Obtiene el código HTTP actual con
http_response_code(). - Muestra el código de error con una animación flotante.
- Incluye el fragmento de texto específico del error desde
html/errores/{codigo}.html.php.
html/errores/404.html.php— Muestra el título “Página no encontrada” y un mensaje explicativo.html/errores/403.html.php— Muestra el título “No se puede acceder” y un mensaje de acceso denegado.
error.php (variables CSS, animaciones float y pulse) para mostrar una página de error estilizada con un enlace de regreso al inicio.
Las directivas En un despliegue diferente esta ruta debe actualizarse para que coincida con la ruta real de Consulta la guía de Despliegue para más detalles sobre la configuración del entorno.
ErrorDocument del .htaccess llevan la ruta absoluta del servidor hardcodeada para el entorno de desarrollo original:error.php en el servidor. Por ejemplo, si el panel está desplegado en la raíz del dominio: