Molto spesso quando si naviga sul web non si specifica il nome di un file html specifico, ma semplicemente quello di una directory. Per esempio, l'URL http://www.openskills.info/ indica la directory principale ( / ) del web server www.openskills.info.
In questi casi il server web automaticamente visualizza un file predefinito.
Tramite la direttiva DirectoryIndex è possibile impostare il nome dei Default Index cioè delle pagine che vengono processate quando l'url richiesta corrisponde ad una directory.
La sintassi è la seguente:
DirectoryIndex nome.file nome.file ...
Per esempio:
DirectoryIndex index.php index.php3 index.html index.htm
E' possibile elencare più nomi di file come nell'esempio, questi hanno priorità progressiva: nel caso indicato Apache mostra index.php se esiste, altrimenti index.php3, poi index.html e a seguire.
Se si vuole evitare in modo semplice e veloce il listing di una directory in un server basta creare una pagina vuota con uno dei nomi indicati come DirectroyIndex:
Il comando shell touch /home/www/html/index.htm
crea un file vuoto, che il server web legge e serve al browser che visualizza una pagina vuota (invece, se previsto dalla configurazione del web server) dell'elenco dei file e delle directory contenuti in /home/www/html.
Notare che la scelta di index.html come home page predefinita (o di Default.htm, comune in ambienti Windows, sotto IIS) è assolutamente arbitraria e infatti è facilmente configurabile con la direttiva DirectoryIndex,
Ogni volta che Apache deve processare un URL può rispondere in tre modi:
- Restituisce la risorsa richiesta.
- Restituisce un errore.
- Restituisce una pagina html contenente l'elenco degli oggetti contenuti nella directory.
La terza possibilità viene identificata come Directory listing e viene gestita tramite il modulo mod_autoindex.
Tramite la direttiva Options è possibile abilitare e disabilitare la visualizzazione dei file contenuti in una directory, quando non esiste la DirectoryIndex, cioè un file predefinito come home page:
Options +Indexes
Options -Indexes
Per motivi di sicurezza e riservatezza è generalmente consigliabile disabilitare l'opzione di Indexes a meno che l'intento sia proprio quello di mostrare tutto il contenuto di una directory.
L'aspetto della pagina html generata on-the-fly dipende inanzitutto dal contenuto della directory e da varie opzioni settatte tramite le direttive sotto indicate.
Di default viene generata una pagina html con l'opzione FancyIndexing ed in modo automatico viene visualizzato il possibile contenuto di un file readme e HEADER.
Di fatto le configurazioni preimpostate di Apache sono più che adeguate, l'unica attenzione va posta su quali directory permettere il Listing e su quali impedirlo.
IndexOptions
Modifica la visualizzazione del contenuto, con la possibilità di modificare a piacere le dimensione delle icone o visualizzare o meno alcuni attributi dei file contenuti nella directory:
IndexOptions FancyIndexing
HeaderName
E' la direttiva che permette di definire il nome di un file che verrà incluso e visualizzato in modo automatico come header, prima dell'elenco dei file nella directory:
HeaderName intro
IndexIgnore
Direttiva che permette di non visualizzare specifici file nel listing della directory:
IndexIgnore *.doc *.mp3
AddIcon, Addalt
Permette di associare una icona e un alt-text ad un tipo di file:
AddIcon /icons/jpg.gif .jpg
Addalt "JPG Image" .jpg
AddType, AddIconByType, AddAltByType
Permette di associare una icona e un alt-text ad un di file a seconda del suo MIME type.
AddEncoding, AddIconByEncoding, AddAltByEncoding
Permette di associare una icona e un alt-text ad un di file a seconda del suo MIME Encoding.
DefaultIcon
Setta la icona di default che viene visualizzata nel caso in cui il tipo di file non è associato a nessuna icona:
DefaultIcon /icons/blank.gif
AddDescription
Direttiva che permette di aggiungere la descrizione ad eventuali tipi di file:
AddDescription "GIF IMAGE" *.gif