# ---------------------------------------------------------------------------
# VERSIONE PHP — richiesta 8.1 o superiore.
# Se la versione viene impostata qui e non da cPanel, questa riga va
# RIPRISTINATA A OGNI AGGIORNAMENTO DEI FILE, altrimenti si torna a PHP 7.x
# e ricompare l'errore "Default value for parameters with a class type".
# Preferibile impostarla da cPanel > MultiPHP Manager, che sopravvive ai deploy.
#
# Esempio (il suffisso dipende dall'hosting, verificare in cPanel):
 AddHandler application/x-httpd-ea-php83 .php
# ---------------------------------------------------------------------------

Options -Indexes
RewriteEngine On

# Le cartelle di sorgente sono protette da un .htaccess proprio dentro ciascuna:
# app/ config/ templates/ database/ storage/
# Non si usa una regola per schema di URL, perche' collidenrebbe con i percorsi
# pubblici dell'applicazione (era la causa del 403 su /app).

# Il manifest e' generato da PHP: ha la precedenza su un eventuale file
# statico rimasto da versioni precedenti dell'applicazione.
RewriteRule ^manifest\.webmanifest$ index.php [QSA,L]

# Front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

# ── LA COMPRESSIONE DEI FILE DI TESTO ──────────────────────────────────────
# ⚠⚠ Aggiunta il 9 ottobre 2026 insieme al lettore QR, che porta con se' una
#    libreria da 251 KB in chiaro: compressa ne fa 56. Alla porta, su una
#    rete di nave condivisa da cinquemila persone, sono due secondi invece di
#    dieci — e vale per TUTTO il resto del programma, non solo per quella.
#
# ⚠ Dentro `<IfModule>` di proposito: se su quel server il modulo non c'e',
#   queste righe non esistono e la pagina si serve lo stesso. Una direttiva
#   senza il suo modulo fa rispondere 500 a TUTTO il sito, ed e' il genere di
#   riga che si aggiunge un venerdi' e si scopre il lunedi'.
#
# ⚠ Le immagini, i PDF e i caratteri NON si comprimono: sono gia' compressi,
#   e rifarlo spreca tempo di processore su entrambi i lati.
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
  AddOutputFilterByType DEFLATE application/javascript application/x-javascript
  AddOutputFilterByType DEFLATE application/json application/manifest+json
  AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
