Agire sulle risorse: direttive di Apache
12/05/2005
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>
© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.
Stampa :: Torna alla Home