A volte può essere utile impedire in un web server il download e la visualizzazione di un determinato file o una categoria di file caratterizzati da un’estensione specifica. Un esempio può essere l’uso di SQLite: lasciare libera la possibilità di scaricare il database potrebbe compromettere la sicurezza dei dati registrati in esso. Per ovviare al problema si può applicare una direttiva nel file .htaccess che ne limiti l’accesso da parte di client remoti.
Di seguito è presentata la sezione che impedisce la visualizzazione di tutti i file con estensione .htaccess, .htpasswd, .ini, .log, .sh o .db:
<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|db)$">
Order Allow,Deny
Deny from all
</FilesMatch>
Con un po’ di fantasia si può personalizzare il codice per far in modo che si adatti alle specifiche esigenze. Ad esempio, se volessimo bloccare l’accesso a tutte le immagini:
<FilesMatch "\.(gif|jpe?g|png)$">
Order Allow,Deny
Deny from all
</FilesMatch>
Oppure tutti i file admin.php, admin.html o admin.htm:
<FilesMatch "^admin\.(php|html|htm)$">
Order Allow,Deny
Deny from all
</FilesMatch>
In generale la direttiva FilesMatch accetta delle espressioni regolari come argomento. Per maggiori dettagli rimando alla pagina di documentazione ufficiale di Apache: http://httpd.apache.org/docs/current/mod/core.html#filesmatch.