#Las instrucciones siguientes le dicen al servidor que cuando no se encuentre un archivo o directorio, realice un redireccionamiento al index.php
#Adicionalmente podremos procesar la ruta de la url a través del parámetro PATH_INFO.
RewriteEngine on

# Apache/PHP-CGI descartan el header "Authorization" antes de que llegue a PHP.
# Estas dos líneas lo rescatan y lo exponen como variable de entorno HTTP_AUTHORIZATION,
# para que getallheaders() en AutenticacionApi.php pueda leer la clave API del cliente.
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

# Si la URL pedida no es un archivo (!-f) ni una carpeta (!-d) real en el servidor,
# se reenvía todo a index.php como el parámetro PATH_INFO (ej: /usuarios/login).
# QSA conserva los parámetros ?query=string que ya traía la URL original.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?PATH_INFO=$1 [L,QSA]

#prevenir acceso a los archivos .htaccess
<files .htaccess>

order allow,deny

deny from all
</files>

#prevenir acceso directo al archivo .env (contiene credenciales de la BD en texto plano)
<files .env>

order allow,deny

deny from all
</files>

#evitar listado de directorios (que el navegador muestre los archivos de una carpeta sin index.php)
IndexIgnore *
