back to top

Agire sulle risorse: direttive di Apache

Introduzione alle Direttive di Apache

Alla base del funzionamento di Apache si trovano le direttive, conosciute anche come container. Questi elementi raggruppano risorse e informazioni con istruzioni di configurazione comuni. In pratica, file e cartelle appartenenti a un medesimo gruppo seguono le stesse regole. Per isolare un gruppo e applicare determinate direttive solo a esso, รจ sufficiente utilizzare una sintassi simile a quella HTML:

<Directory /PATH/file o cartella>
istruzione
istruzione
.............
</Directory>

Un esempio di container รจ stato mostrato nel capitolo precedente:

Pubblicitร 
<Directory "PATH_per_la_ROOT">
Options Indexes FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Le direttive sono comunemente espresse attraverso semplici parole inglesi, come Allow (permetti) e Deny (nega).

Struttura delle Direttive in httpd.conf

All’interno di httpd.conf, troveremo frequentemente indicazioni che costituiscono la sintassi base delle direttive. Innanzitutto, si osservano i “tags” minore “<” e maggiore “>” che delimitano la directory per cui le direttive avranno effetto. Per ogni directory viene specificato il relativo percorso, e le direttive influiscono sia sulla cartella principale sia sul suo contenuto, incluse file e sotto cartelle.

Con l’uso delle “espressioni regolari”, รจ possibile utilizzare le DirectoryMatch per applicare determinate direttive solo a specifiche cartelle. Un esempio di questo potrebbe essere applicare regole solo a cartelle il cui nome inizia con una lettera specifica dell’alfabeto.

Utilizzo di Files e FilesMatch

Oltre ai tag <Directory..></Directory> e DirectoryMatch, le direttive possono essere impostate anche tramite Files e FilesMatch, utilizzando il carattere jolly “*”. Ad esempio, se scriviamo:

Files *.ext

Questa direttiva avrร  valore per tutti i file con una determinata estensione, indipendentemente dal loro nome.

Direttive Location e LocationMatch

Le direttive Location e LocationMatch funzionano in modo simile alle istruzioni precedenti, ma si riferiscono a URL specifiche anzichรฉ a percorsi interni al server. Un esempio comune che si puรฒ trovare in httpd.conf รจ il seguente:

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from NOME_DOMINIO
</Location>

Questa direttiva autorizza la ricezione dei “reports” del server all’indirizzo “http://servername/server-status”.

Gestione dei Virtual Host

รˆ inoltre importante menzionare l’uso di VirtualHost, che รจ fondamentale per gestire “domini virtuali” e piรน siti web su un singolo server. Con VirtualHost, รจ possibile impostare diverse DocumentRoot, indirizzi e-mail dell’amministratore, percorsi per i file di log e molte altre configurazioni specifiche per ciascun dominio.

Limit e LimitExcept per i Criteri di Accesso

Infine, le istruzioni Limit e LimitExcept consentono di differenziare i criteri di accesso a file e cartelle. La direttiva Limit si traduce come “poni un limite a”, mentre LimitExcept significa “poni un limite a tutti i metodi di accesso tranne quello indicato”. Queste due istruzioni sono raramente espresse da sole e piรน frequentemente fanno parte di una direttiva principale. Di seguito, un esempio che riguarda il controllo degli accessi alle directory dell’utente:

<Directory "PATH">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
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.