back to top

DirectoryIndex e Directory Listing in Apache

Vi siete mai chiesti da cosa deriva il fatto che le home page della maggior parte dei siti internet siano rappresentate da file chiamati “index.html”, “index.php” e simili? In questo articolo, esploreremo la logica dietro questa convenzione, il funzionamento della gestione delle directory in Apache e come ottimizzare il nostro web server per migliorare l’esperienza utente.

Dietro a questa convenzione non ci sono motivazioni particolari se non la comoditร  dell’utente, che non deve digitare per intero una URL completa del file, ma puรฒ avvalersi di una scorciatoia. Dovendo accedere alla pagina:

Pubblicitร 
http://www.claudiogarau.it/index.php

Non sarร  quindi necessario scrivere l’intera URL; basterร  digitare:

http://www.claudiogarau.it

Del resto, l’utente non รจ tenuto a sapere in che modo abbiamo chiamato la nostra home page e che estensione le abbiamo dato. Cosรฌ, per consuetudine, si รจ deciso di chiamare “index” le pagine d’ingresso dei siti internet e di notificare questo dato come predefinito al web server, in modo che la conversione dell’URL (da abbreviata a estesa) fosse automatica e invisibile per l’utente.

DirectoryIndex per impostare la pagina di default

Gli “index” vengono impostati tramite la direttiva DirectoryIndex nel file di configurazione httpd.conf, seguendo una sintassi molto semplice che prevede la chiamata della direttiva seguita dal nome del file che dovrร  svolgere le funzioni di “pagina di default” della DocumentRoot.

Visualizzando il file di configurazione di Apache, troveremo sicuramente giร  impostate una lunga serie di possibili pagine “index” complete di estensioni:

DirectoryIndex index.html index.shtml index.php

Naturalmente, nulla ci vieta di impostare a piacere il nome della nostra home intervenendo sull’apposita voce. Ad esempio, potremmo decidere che la nostra pagina di default sia rappresentata dal file “pippo.html”. In tal caso, dovremo impostare come segue:

DirectoryIndex pippo.html

Directory Listing

Quando nella DocumentRoot non รจ presente una pagina “index”, puรฒ verificarsi il fenomeno del directory listing. In questo caso, infatti, il web server, non trovando una pagina d’ingresso, restituisce una lista delle risorse contenute all’interno della directory.

Il directory listing puรฒ essere voluto, come nei siti che offrono il download di determinati file tramite link. Diversamente, puรฒ essere involontario, ad esempio, se il webmaster non crea una home page con uno dei nomi impostati in httpd.conf, oppure se dimentica di passare il nome della propria pagina home come parametro a DirectoryIndex. Naturalmente, non verrร  prodotto alcun elenco se la necessaria direttiva non verrร  abilitata.

In caso di directory listing involontario, il problema sarร  facilmente risolvibile inserendo nella DocumentRoot un file (anche vuoto) con un nome valido per httpd.conf, oppure aggiungendo un nome seguito da un’estensione valida in corrispondenza di DirectoryIndex.

Il directory listing produce quindi, in alternativa all’HomePage, un semplice documento HTML recante una lista dei file presenti nella DocumentRoot, accessibili tramite link. Questo fenomeno รจ reso possibile da un modulo chiamato mod_autoindex. La visualizzazione del listing รจ configurabile tramite alcune voci:

  • HeaderName: consente di indicare il nome di un file da visualizzare automaticamente come intestazione prima della lista delle risorse.
  • IndexOptions: permette di impostare la visualizzazione dei contenuti, inclusa la possibilitร  di nascondere particolari elementi che non si vogliono rendere visibili.
  • IndexIgnore: consente di non mostrare certi tipi di file interni alla directory.
  • AddDescription: consente di descrivere determinati file.
  • Addalt: associa il tag “alt” a determinati file.
  • AddIcon: associa un’icona a determinati file.
  • AddAltByType: consente di associare il tag “alt” a determinati file sulla base della loro tipologia.
  • AddIconByType: consente di associare un’icona a determinati file sulla base della loro tipologia.
  • AddAltByEncoding: consente di associare il tag “alt” a determinati file sulla base del “MIME Encoding”.
  • AddIconByEncoding: consente di associare un’icona a determinati file sulla base del “MIME Encoding”.
  • DefaultIcon: indica un’icona predefinita da mostrare quando non รจ stata associata alcuna icona a un tipo di file.

Per disabilitare il Directory Listing senza caricare una pagina di default, รจ possibile aggiungere questa direttiva:

<Directory /path/to/directory>
    Options -Indexes
</Directory>

In conclusione, conoscere il funzionamento della gestione delle directory e della direttiva DirectoryIndex รจ fondamentale per ogni webmaster che desideri ottimizzare la propria configurazione di Apache. Impostare correttamente la propria DocumentRoot e le pagine “index” non solo migliora l’esperienza utente, ma consente anche una gestione efficace delle risorse web.

Per approfondire ulteriormente, seguite la documentazione ufficiale di Apache e scoprite le infinite possibilitร  che offre nella personalizzazione della vostra esperienza web. Inoltre, imparare a gestire efficacemente il DirectoryIndex puรฒ contribuire a migliorare il posizionamento SEO del vostro sito, poichรฉ una buona struttura della directory รจ un fattore importante per i motori di ricerca.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.
Articolo precedente
Articolo successivo