# .htaccess

.htaccess è un formato di file di configurazione utilizzato dai server web, utilizzato per ordinare i contenuti di un sito web.
Il nome del file inizia con un punto perché i file che iniziano con un punto in ambiente Unix-like sono file nascosti.

## Caratteristiche

Esso si colloca all'interno delle directory http del server e ha effetto sulla directory stessa e sulle sue sottodirectory.
Il file .htaccess, inserito nell'albero delle directory del server, è in grado di sovrascrivere alcune impostazioni normalmente regolate all'interno della configurazione globale del server. Nelle situazioni di hosting condiviso raramente gli utenti hanno modo di manipolare i file di configurazione del server: in questo caso è possibile utilizzare .htaccess per personalizzare, per quanto possibile, la configurazione del server stesso.
Lo scopo originale dei file .htaccess era quello di consentire il controllo dell'accesso alle cartelle (per esempio, chiedendo una password per accedere al contenuto di una cartella). Oggi i file .htaccess possono sovrascrivere molte altre impostazioni della configurazione, la maggior parte relative al controllo dei contenuti (per esempio: tipo di contenuti e character set, gestione degli URL, handler CGI, ecc.).

## Utilizzo

Nei server Web Apache (Apache HTTP Server), il formato di .htaccess è lo stesso del file della configurazione globale del server; gli altri server Web (come Sun Java System Web Server e Zeus Web Server) implementano la stessa sintassi anche se i loro file di configurazione sono molto differenti. Le direttive dei file .htaccess si applicano alla cartella corrente e a tutte le sottocartelle (a meno che non si disabilita esplicitamente questo comportamento nella configurazione del server) ma, per ragioni di prestazioni e sicurezza, non si applicano alle cartelle del livello superiore.

### Autorizzazione e autenticazione

    i file .htaccess vengono utilizzati spesso per specificare le restrizioni di sicurezza di particolari cartelle. Di solito, il file .htaccess è accompagnato da un file .htpasswd che memorizza i nomi utenti e le password corretti.

### Pagine di errore personalizzate

    è possibile modificare la pagina visualizzata quando si verifica un errore lato-server (per esempio HTTP 404 - Pagina non trovata.)

### Riscrittura degli URL

    i server, di solito, utilizzano i file .htaccess per trasformare URL lunghi e complessi in URL corti e più facilmente memorizzabili.

### Controllo della cache

    i file .htaccess consentono a un server di controllare il caching dei browser Web e dei proxy per ridurre il consumo di banda, il carico del server e i lag.

## Utilizzi propri dei file .htaccess

I file .htaccess vengono letti ad ogni richiesta, di conseguenza le modifiche apportate a questi file hanno un effetto immediato a differenza del file di configurazione principale che richiede il riavvio del server per applicare le nuove impostazioni.
Per i server con più utenti, così come nei piani di hosting Web condiviso, molti Web master desiderano spesso concedere ai singoli utenti di modificare la configurazione del loro sito. In generale, i file .htaccess dovrebbero essere utilizzati dagli utenti che non hanno accesso ai file di configurazione del server principale.

## Utilizzi impropri dei file .htaccess

Per controllare Apache, è consigliabile utilizzare il file di configurazione del server httpd.conf per motivi di sicurezza e prestazioni:

### Riduzione delle prestazioni

    Per ogni richiesta HTTP ci sono accessi aggiuntivi al file system delle cartelle del livello superiore quando si utilizzano i file .htaccess per verificare l'esistenza dei file .htaccess nelle cartelle del livello superiore che possono contenere file .htaccess.

### Sicurezza

    Consentire ai singoli utenti di modificare la configurazione di un server, magari in modo errato, potrebbe provocare problemi di sicurezza.