Cosa sono e come si usano i files .htaccess
Introduzione
I files .htaccess (o "files di configurazione distribuita") sono dei files di testo che forniscono un meccanismo di configurazione a livello di directory. Tali files contengono una o più direttive di configurazione e vengono posizionati in una particolare directory del file system del server (Apache ovviamente). Le direttive contenute in tali files verranno applicate solo alla directory di appartenenza e a tutte le sue sottodirectory.
E' possibile cambiare il nome di tali files di configurazione (invece del nome di default .htaccess) ad esempio con .config (o un altro nome più fantasioso). Questo è possibile usando la direttiva AccessFileName. Come esempio potete mettere tale codice nel file di configurazione del server (httpd.conf):
AccessFileName .config
Ma quante direttive possiamo usare in questi files? A questa domanda risponde la direttiva AllowOverride. Questa direttiva specifica quali direttive verranno eseguite se incontrate in un file .htaccess. Se una direttiva è consentita, la documentazione per tale direttiva conterrà una sezione denominata Override, la quale specificherà quali valori devono esserci in AllowOverride al fine di rendere eseguibile la direttiva inclusa.
Per esempio, se osserviamo la documentazione della direttiva AddDefaultCharset, scopriremo che è permessa la sua inclusione nei files .htaccess osservando il valore presente alla linea Context (in questo caso all, se ci fosse stato server config inece non sarebbe stata permessa la sua inclusione in .htaccess). La linea Override specifica "FileInfo". Per cui bisogna specificare per lo meno "AllowOverride FileInfo" affinchè tale direttiva sia funzionale in un file .htaccess.
Esempio:
Context: server config, virtual host, directory, .htaccess Override: FileInfo
Corsi online di WebMasterPoint.org:
Se non si è sicuri se una particolare direttiva sia consentita in un file .htaccess, consultare la documentazione per tale direttiva e assicuratevi che alla riga Context ci sia "all" oppure ".htaccess."
Quando usare o meno tali files
In generale non si dovrebbe usare mai i files .htaccess se non si ha accesso al file di configurazione principale del server. Esiste per esempio la convizione predominante che l'autenticazione degli utenti debba essere sempre effettuata attraverso l'ausilio di files .htaccess. Ad ogni modo è possibile inserire la configurazione relativa all'autenticazione degli utenti nel file di configurazione principale del server, tecnica in generale consigliata (si veda la sezione Esempio di autenticazione).
I files .htaccess dovrebbero esser usati nel caso in cui i fornitori di contenuti abbiano bisogno di effettuare delle modfiche alla configurazione principale del server a livello di directory ma non hanno i privilegi amministrativi per accedere al file system del server. Nei casi in cui l'amministratore del server non abbia intenzione di effettuare frequenti cambiamenti di configurazione, sarebbe auspicabile permttere ai singoli utenti di effettuare da soli tali cambiamenti nei files .htaccess. Questo è particolarmente vero nei casi in cui gli ISP ospitino più siti di più utenti su una stessa macchina e desiderino che i loro utenti siano in grado di alterare la loro configurzione.
Ad ogni modo, in generale, l'uso di files .htacess dovrebbe essere evitato quando possibile. Si tenga presente che ogni configurazione inseribile in un file .htaccess può essere tranquillamente messa in una sezione <Directory> nel file di configurazione principale del server.
Ci sono due ragioni principali per evitare l'uso dei files .htaccess:
- performance: quando
AllowOverrideè settata in modo da permettere l'uso di files .htaccess, Apache controllerà in ogni directory se sono presenti tali files. quindi ogni richiesta al server comporta una diminuzione delle prestazioni effettive del server, sia che si usino o meno tali files.
In oltre si noti che Apache dovrà cercare i files .htaccess in tutte le directory di livello più alto per poter eseguire correttamente le direttive (si veda la sezione Come si applicano le direttive più sotto.). Perciò, se si richiede un file nella directory/www/htdocs/example, Apache dovrà vedere se sono presenti i seguenti files:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
Per cui per ogni file acceduto in tale directory, ci sono 4 accessi addizionali al file system, anche se tali files non sono presenti. (si noti che questo vale per l'esempio nel caso in cui i files .htaccess siano stati abilitati per la directory root /, che non è solitamente il caso di fare). - sicurezza: si sta permettendo algli utenti di modificare la configurazione del server, che potrebbe comportare cambiamenti indesiderati. considerare attentamente quali privilegi fornire agli utenti. L'uso di file .htaccess può essere del tutto diabilitato settando la direttiva
AllowOverridea "none":
AllowOverride None
Come si applicano le direttive
Le direttive di configurazione che si trovano nel file .htaccess vengono applicate nella directory che lo contiene e a tutte le sue sottodirectory. Ad ogni modo è importante ricordare che ci potrebbero essere altri file .htaccess in un livello più alto del file system. Le direttive vengono applicate nell'ordine in cui vengono incontrate, quindi, un file .htacess in una particolare directory potrebbe sostituire le direttive che si trovano in un altro file .htaccess posizionato più in alto nell' albero del file system e così via anche per questo. Esempio:
Nella directory /www/htdocs/example1 abbiamo un file .htaccess che contiene il seguente contenuto:
Options +ExecCGI
(nota: bisogna aver settato "AllowOverride Options" per permettere l'uso della direttiva "Options" nei files .htaccess.)
Nella directory /www/htdocs/example1/example2 abbiamo un altro file .htaccess con il seguente contenuto:
Options Includes
A causa della presenza di questo secondo file .htaccess, nella directory /www/htdocs/example1/example2, l'esecuzione di scripts CGI non è permessa, poichè è attiva solo Options Includes, che surclassa completamente ogni altro settaggio possa esser stato fatto.
Esempio di autenticazione
Se siete passati direttamente a questa sezione, è importante far notare il pensiero comune che riguarda l'uso forzato di files .htaccess per implementare l'autenticazione tramite password. E' preferibile invece mettere le direttive di autenticazione in una sezione <Directory> nel file di configurazione principale del server.
Premesso ciò, se pensate ancora di avere il bisogno di usare un file .htaccess, considerate la configurazione sottostante (bisogna aver settato "AllowOverride AuthConfig" perchè il tutto funzioni):
contenuto del file .htaccess:
AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins
Fate riferimento a questo tutorial per una discussione più approfondita sull'autenticazione e autorizzazione degli utenti.
Esempio con i Server Side Includes
Un altro uso comune dei files .htaccess è l'abilitazione dei Server Side Includes per una directory particolare. Ciò si può fare con le seguenti direttive messe in un file .htaccess posizionato nella directory desiderata:
Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml
Si ricorda che AllowOverride Options e AllowOverride FileInfo devono essere abilitate perchè l'esempio funzioni.
Esempio con script CGI
Infine potremmo voler permettere l'esecuzione di programmi CGI in una particolare directory. Ciò è possibile con il codice seguente:
Options +ExecCGI
AddHandler cgi-script cgi pl
Alternativamente se desideriamo che tutti i files nella data directory vengano considerati programmi CGI, ciò è reso possibile con la seguente configurazione:
Options +ExecCGI
SetHandler cgi-script
Ricordiamo sempre che AllowOverride Options dev'essere attiva perchè l'esempio funzioni. Per una completa discussione sulla programmazione CGI, si veda questo tutorial.
Debugging
Quando si mettono delle direttive in un file .htaccess e non si ottengono gli effetti desiderati, ci possono essere svariati fattori che possono portare all'errore. Il più comune è che AllowOverride non permette l'uso delle direttive che state usando. Assicurarsi di non aver settato AllowOverride None. Un test per vedere se AllowOverride None è settato o meno è di inserire del testo senza senso nel file .htaccess: se non viene generato un errore interno del server allora probabilmente AllowOverride None è stata specificata.
Dall'altro lato, se otteniamo errori dal server quando cerchiamo di visionare dei documenti, controllate il log degli errori di Apache. Probabilmente vi rivelerà che la directory usata nel vostro file .htaccess non è accettata oppure potrebbe rivelarvi un errore di sintassi.
- Più intelligenti con Internet grazie alle ricerche e alla navigazione online secondo studio.
L'Institute for Neuroscience and Human Behaviour dell'Università di Los Angeles ha pubblicato uno studio secondo il quale le ricerche effettuate su Internet potrebbero aiutare ad allenare e migliorare le funzionalità del cervello.
- Nuove offerte ADSL Ngi: cambio prezzi e condizioni. Si può scegliere anche di non usare il P2P.
- Flash Player 10 disponibile da scaricare: novità video e audio importanti. Caratteristiche.
- Smau 2008: le novità. Corsi e convegni per la formazione, percorsi innovazione e aree espositive.
- Nuovi computer portatili MacBook Apple: leggeri, robusti, potenti. Prezzi e caratteristiche tecniche
- Wimax in Italia: offerte a prezzi più bassi dell'Adsl con diversi vantaggi. Si parte bene
Finalmente arrivano le prime offerte WiMax in Italia. Cambierà la situazione della rete italiana? - Service Pack 2 Windows Vista disponibile da scaricare tra alcuni mesi. Confermato anche il nome di Windows 7 come nuovo sistema operativo
- Silverlight 2 disponibile da scaricare. Tutte le novità e caratteristiche del rivale di Flash
- Essere primi nei motori di ricerca: come fare? Dieci consigli utili
- Openoffice 3 in italiano disponibile: numerosi miglioramenti. Supporto MS Access 2007 e macro VBA


![[SPONSOR] 9NetWeb (Link Esterno)](http://www.webmasterpoint.org/sponsor/9netweb_120.gif)
![[SPONSOR] Aruba (Link Esterno)](/sponsor/aruba_90.gif)
![[SPONSOR] ConsultingWeb (Link Esterno)](/sponsor/consultingweb_120.gif)
Stampa Pagina
Info sull'autore
ICQ
EMAIL
DISCUTI DI QUESTA LEZIONE SUL FORUM![[SPONSOR] eDomain (Link Esterno)](http://www.webmasterpoint.org/sponsor/edomain_120.gif)
![[SPONSOR] Rubalo.it](/sponsor/rubalo_120.gif)
![[SPONSOR] MisterDomain.eu (Link Esterno)](http://www.webmasterpoint.org/sponsor/misterdomain.gif)