• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida I file .htaccess in Apache

PSiimo

Utente Master
Autore del topic
7 Febbraio 2009
2.503
85
Miglior risposta
0



Cos’è un file .htaccess


I file .htaccess è un file di direttivo per Apache, serve per andare a modificare le direttive generale che Apache offre sul server.


Come funziona

I file htaccess di apache funzionano in maniera emolto semplice: apache quando riceve una richiesta, prima di eseguirla, verifica se esiste un file .htaccess nella cartella del file richiesto o in una cartella precedente, e se presente, andrà ad esguire le istruzioni che noi abbiamo precedentemente incorporato.

Scope/Raggio d'azione


L’ambito, o lo scope/Raggio d'azione, dei file .htaccess si restringe alla cartella nella quale è presente il file.
il file .htaccess ricopre solo la directory principale (se esso è inserito li), oppure nella cartella in cui viene inserito, tipo: "forum". Andrà a sviluppare le modifiche di Apache solo dove esso è stato incorporato.


 
Ultima modifica:
Hem... in realtà no, perché .htaccess ha accesso all'intero albero delle directory di un sito.
Se hai letto questo blog:
Perfavore, Entra oppure Registrati per vedere i Link!
il tizio ha scritto una bella serie di castronate, infatti senza nemmeno accorgersene probabilmente, si autocorregge quando scrive a proposito dello scope:
Scope

L’ambito, o lo scope, dei file htaccess si restringe alla cartella nella quale è presente il file. L’utilizzo di direttive che richiamino, in qualsiasi modo, cartelle precedenti nell’albero delle directory provocherebberò un “Internal Server Error”, ovvero un’errore di tipo 500. Lo Scope comprende anche tutte le sotto cartelle ed i relativi file presenti nella cartella principale.
e poi segue un esempio che spiega come l'abito delle direttive contenute nel file si propagano anche alle sotto cartelle... in pratica voleva solo dire che .htaccess non può camminare all'indietro e mi pare pure logico.

In effetti l'help di apache sul sito di Apache, l'unico che ha valore a questo punto dice proprio in apertura:
You should avoid using .htaccess files completely if you have access to httpd main server config file. Using .htaccess files slows down your Apache http server. Any directive that you can include in a .htaccess file is better set in a Directory block, as it will have the same effect with better performance.

cioè all'incirca:
Si dovrebbe evitare di utilizzare file .htaccess se si ha accesso al file di configurazione di httpd ( Apache ndt ) del server. L'utilizzo di file .htaccess rallenta il server HTTP Apache. Qualsiasi direttiva che è possibile includere in un file .htaccess è meglio impostarla in un blocco <directory>, in quanto avrà lo stesso effetto ma con prestazioni migliori.
Cioè se devi usare .htaccess per dare comandi all'intero sito, per esempio per impostare una pagina 404 o implementare un rewrite engine, c'è poco da fare, bisogna lasciargli leggere l'intero albero del sito che se è molto grande può rallentarlo significativamente, se no o metti vari .htaccess nelle sotto cartelle, ma tieni presente che comunque Apache ci mette un secolo a interpretarli tutti, oppure, sempre nel ramo principale usi le direttuve <directory> per impostare su quali directory dare certe direttive, in questo modo apache legge solo quello e non va a cercarsi altro in giro per il sito. O meglio, ci va lo stesso ma non trova altre direttive da interpretare e quindi fa prima.
Esempio:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Nella prima directory la root di exemple si indicizzano i files e si permette tutto, ma poi in /bin si vieta di entrare a chiunque, ma il files ,htaccess si trova solo e soltanto nella root dir del sito.

fonte:
Perfavore, Entra oppure Registrati per vedere i Link!
( in inglese )