Che cos'è il formato di file HTACCESS?
.htaccess è un file di configurazione del server web Apache. A differenza della maggior parte dei file, .htaccess non include un nome file prima del punto - il punto iniziale fa parte del nome stesso, rendendolo un file nascosto per impostazione predefinita su Linux e macOS. I file .htaccess non devono essere modificati manualmente da utenti non autorizzati o non qualificati. Il file memorizza tutta la configurazione in testo semplice.
I file .htaccess contengono impostazioni di configurazione per singola directory che definiscono funzioni del server come:
- la pagina indice (predefinita) di una directory,
- restrizioni di accesso per specifici indirizzi IP,
- pagine di errore personalizzate (es. Pagina 404 Non Trovata),
- reindirizzamenti e riscritture URL (
RewriteRule/RewriteCond), - protezione delle directory tramite password (
AuthType,AuthUserFile), - impostazioni di sicurezza del server aggiuntive e intestazioni di risposta HTTP personalizzate.
Affinché .htaccess abbia effetto, AllowOverride deve essere impostato su un valore diverso da None nel file principale httpd.conf - sui server protetti, l'elaborazione di .htaccess è spesso disabilitata del tutto.
Poiché Apache legge .htaccess ad ogni richiesta HTTP verso la sua directory, esso comporta un costo prestazionale misurabile. La documentazione ufficiale di Apache raccomanda di inserire direttive equivalenti nei blocchi di configurazione del server o VirtualHost, poiché questi vengono caricati solo una volta all'avvio.
.htaccess è specifico per Apache; Nginx non lo supporta e richiede regole equivalenti in nginx.conf. Il file complementare .htpasswd memorizza le credenziali con hash per l'autenticazione HTTP di base.
Sicurezza e incolumità
RISCHIO: HIGH.htaccess di per sé è un file di testo innocuo da aprire in un editor. Tuttavia, rappresenta una superficie di attacco CRITICA sui server web: 1. Attacco tramite caricamento: se un'app web consente agli utenti di caricare file in una directory accessibile dal web e l'AllowOverride di Apache permette .htaccess, un utente malintenzionato che carica un .htaccess appositamente creato può riabilitare l'esecuzione di PHP in una directory di caricamento ed eseguire webshell. Mitigazione: memorizzare i caricamenti all'esterno della root dei documenti; impostare AllowOverride None per le directory di caricamento; bloccare la creazione di .htaccess nelle directory di caricamento. 2. Divulgazione di informazioni: un server mal configurato che serve .htaccess come file di testo (invece di bloccare l'accesso ai dotfile) espone la configurazione del server, la struttura delle directory e potenzialmente riferimenti alle credenziali. La configurazione predefinita di Apache blocca l'accesso ai file .htaccess (FilesMatch ^\.ht).
Dettagli del formato
in sintesiProgrammi che aprono file HTACCESS
Dettagli tecnici
specifiche approfondite| Origine | Ereditato da NCSA HTTPd (1994); Apache HTTP Server lo supporta dalla versione 1.0 (1995) |
| Nome file | Dotfile - il nome file completo è `.htaccess`; nascosto per impostazione predefinita su Unix e macOS |
| Tipo di file | Configurazione Apache per singola directory in testo semplice |
| Codifica | UTF-8 o ASCII (deve corrispondere alla localizzazione del server) |
| Dimensione tipica del file | 100 byte - 50 KB (la maggior parte dei file sotto i 5 KB) |
| Frequenza di elaborazione | Letto da Apache ad ogni richiesta HTTP verso la directory contenente e tutte le sottodirectory |
| Prerequisito | `AllowOverride` non deve essere `None` nel file `httpd.conf` principale; altrimenti `.htaccess` viene ignorato silenziosamente |
| Direttive comuni | `RewriteRule`, `RewriteCond`, `ErrorDocument`, `AuthType`, `AuthUserFile`, `Header`, `Options`, `Redirect` |
| Sintassi controllo accessi | Apache 2.4 ha sostituito `Allow`/`Deny` con `Require`; la vecchia sintassi richiede `mod_access_compat` |
| Compatibilità Nginx | Non supportato da Nginx; le regole devono essere tradotte manualmente in direttive `nginx.conf` |
| Nota sulle prestazioni | Causa letture del disco per ogni richiesta; Apache raccomanda di preferire `httpd.conf` o i blocchi VirtualHost per la configurazione |
| Rischio di sicurezza | Un file `.htaccess` caricato da un utente malintenzionato in una directory web scrivibile può abilitare l'esecuzione di script lato server |
| Rilasciato | 1994 (NCSA HTTPd, predecessor to Apache; Apache inherited it from 1995) |
| Ultima versione | Apache HTTP Server 2.4.x directive syntax (current) |
| Standard aperto | Sì · royalty-free |
| Specifica | httpd.apache.org |
Conversioni HTACCESS
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file HTACCESS.