Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Apache :: Agire sulle risorse: direttive di Apache :: Indice Apache


Agire sulle risorse: direttive di Apache

Categoria: Apache Inserito il: 12-05-2005 Stampa (2652 click)

Alla base del funzionamento di Apache abbiamo le direttive, note anche come container. I container raggruppano risorse e informazioni con direttive di configurazione comuni; in pratica, i file e le cartelle di uno stesso gruppo rispondono alle medesime regole. Per isolare un gruppo dagli altri e rendere valide soltanto per esso determinate direttive basterà utilizzare una sintassi simile a quella HTML:

<Directory /PATH/file o 

cartella>
istruzione
istruzione
………….

</Directory>
Abbiamo visto un esempio di container nel capitolo precedente:
<Directory "PATH_per_la_ROOT">
Options Indexes FollowSymLinks 

Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Come si avrà modo di osservare, le direttive vengono imposte attraverso semplici parole inglesi come Allow (permetti) o deny (nega).

All'interno di httpd.conf, troveremo sovente alcune indicazioni che costituiscono la sintassi base delle direttive.

Innanzitutto osserviamo i "tags" minore "<" e "maggiore" ">" con i quali viene delimitata la directory per cui le direttive avranno valore. Per ogni directory viene indicato il relativo percorso e le direttive influiranno sia sulla cartella principale che sul suo contenuto in termini di file e sotto cartelle.
Grazie all'uso delle "espressioni regolari", è possibile indicare le cosiddette DirectoryMatch in modo da imporre determinate direttive soltanto ad alcune cartelle, come ad esempio quelle che cominciano con una determinata lettera dell'alfabeto.

Oltre a <Directory..></Directory> e DirectoryMatch, avremo la possibilità di impostare direttive anche attraverso Files e FilesMatch, magari utilizzando il comodo carattere jolly "*" (tutto); se per esempio scriviamo:
Files 

*.ext
la nostra direttiva avrà valore per tutti (*) i file dotati di una determinata estensione indipendentemente dal loro nome.

Location e LocationMatch funzionano similmente alle istruzioni precedenti, ma non si riferiscono a dei percorsi interni al server, bensì a delle URL specifiche. In httpd.conf troviamo per esempio questa direttiva:
<pre><Location 

/server-status>

SetHandler server-status
Order deny,allow
Deny from all
Allow from 

NOME_DOMINIO
</Location>
Che autorizza la ricezione dei "reports" del server all'indirizzo "http://servername/server-status".

Abbiamo poi VirtualHost utilizzato per le istruzioni relative alla gestione dei "domini virtuali" con più siti internet di cui parleremo a breve; per ora basti sapere che tramite VirtualHost è possibile settare diverse DocumentRoot, indirizzi di posta elettronica dell'Administrator, percorsi verso i file di "log" e molto altro.

Infine, è possibile utilizzare le istruzioni Limit e LimitExcept per differenziare i criteri di accesso a file e cartelle; se Limit stà appunto per "poni un limite a", LimitExcept svolge una funzione più specifica, significa infatti "poni un limite a tutti i metodi di accesso tranne che a quello indicato". Raramente queste due istruzioni sono espresse da sole e più frequentemente sono parte integrante di una direttiva principale. Prendendo spunto da httpd.conf, proponiamo un esempio che riguarda il controllo degli accessi alle directory dello User:
<Directory 

"PATH">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch 

IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,denyAllow from 

all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from 

all
</LimitExcept>
</Directory>

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Claudio Garau Twittter Claudio Garau Linkedin Claudio Garau Facebook Claudio Garau Google Plus
Tutte le categorie
Tutorial Random
Form e metodo POST
Il metodo GET, pur utilissimo, pone dei problemi di sicurezza non indifferenti in sede di sviluppo: innanzitutto bisogna considerare che... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti