# kamiquery — front controller + URLs amigables.
# Todo pasa por index.php salvo los archivos/carpetas reales (assets, etc.).

Options -Indexes
DirectoryIndex index.php

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # No exponer .php: si alguien pide /algo.php, lo mandamos a la URL limpia (con barra final).
    RewriteCond %{THE_REQUEST} \s/+([^?\s]+)\.php[\s?] [NC]
    RewriteRule ^ /%1/ [R=301,L]

    # Archivos y carpetas reales (CSS, JS, imágenes…) se sirven tal cual.
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # Canonical: toda URL de la app termina en barra. Si no, redirige (301).
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule ^(.+)$ /$1/ [R=301,L]

    # Cualquier otra ruta -> front controller.
    RewriteRule ^ index.php [L]
</IfModule>

# Proteger archivos sensibles aunque se pidan directamente.
<FilesMatch "\.(ini|sql|md|log)$">
    Require all denied
</FilesMatch>
<FilesMatch "^\.(htaccess|deploy-manifest)">
    Require all denied
</FilesMatch>
