# ============================================================
# Barrio Conecta API - .htaccess universal (raiz del proyecto)
# ============================================================
# Este archivo debe vivir en la carpeta raiz del proyecto Laravel,
# es decir, en la MISMA carpeta que contiene a public/.
#
# Funciona con CUALQUIER subdominio o dominio:
#   barrio.efraintecnologia.com
#   mibarrrio.prodsis.com
#   prodsis.com
#
# Y con CUALQUIER profundidad de carpeta en el hosting, porque las
# rutas son RELATIVAS a este archivo (no dependen del dominio ni de
# la ruta absoluta de instalacion).
#
# Cuando el DocumentRoot del dominio YA apunta a public/, Apache no
# ejecuta este archivo (solo lee .htaccess dentro del DocumentRoot),
# asi que no interfiere en absoluto.
# ============================================================

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirigir URLs publicas antiguas /public/... a /...
    # THE_REQUEST evita que la reescritura interna hacia public/ cree un bucle.
    RewriteCond %{THE_REQUEST} \s/+public(?:[/?\s]) [NC]
    RewriteRule ^public(?:/(.*))?$ /$1 [R=301,L,NE]

    # No reescribir si la peticion ya va hacia /public
    # (evita bucles y mantiene compatibilidad con la URL vieja /public)
    RewriteCond %{REQUEST_URI} !^/public(?:/|$) [NC]

    # Redirigir TODO lo demas al front controller de Laravel
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

# Bloquear acceso directo a archivos sensibles de Laravel.
<FilesMatch "^(\.env|\.env\.example|artisan|composer\.(json|lock)|phpunit\.xml|package\.json|vite\.config\.js|webpack\.mix\.js)$">
    Require all denied
</FilesMatch>

# Desactivar listado de directorios en la raiz.
Options -Indexes

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php83” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php83 .php .php8 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
