Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

I file .htaccess

Le modifiche necessarie da fare al webserver
Le modifiche necessarie da fare al webserver
Link copiato negli appunti

I file .htaccess consentono di effettuare modifiche alla configurazione di Apache che si applichino in maniera specifica ad una particolare directory (e alle sue subdirectory) per la quale esista una stanza di tipo <Directory> in httpd.conf.

Le direttive che si possono usare all'interno di questi file hanno, in generale, la stessa sintassi del file di configurazione principale di Apache httpd.conf, sebbene non tutte le direttive ammesse in httpd.conf possono comparire in un file .htaccess. Oltre ad alcune limitazioni generali, l'amministratore del server può limitare ulteriormente le categorie di direttive consentite, mediante la direttiva AllowOverride, oppure specificare le singole direttive consentite mediante la direttiva AllowOverrideList.

Specificando AllowOverride none e AllowOverrideList none, il supporto ai file .htaccess viene disattivato per la directory in questione.

Si consideri il seguente esempio:

<Directory/www/htdocs/example/>
AllowOverride AuthConfig Indexes
</Directory>
<Directory/www/htdocs/example2/>
AllowOverride All
</Directory>

Con questa sintassi, facciamo sì che tutte le direttive che non si trovano nei gruppi AuthConfig e Indexes, se usate in un file .htaccess posto nella directory /www/htdocs/example, causeranno un internal server error. Per la directory /www/htdocs/example2, invece, sono consentite tutte le direttive di override.

Come e quando usare i file .htaccess

In generale, bisognerebbe utilizzare i file .htaccess

Rimane comunque preferibile centralizzare le direttive ove possibile, sia per ragioni di performance che di sicurezza.

.htaccess /www/htdocs/example
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

È opportuno notare come le direttive verranno applicate precisamente nell'ordine di apertura dei file trovati. Per esempio, le direttive in /www/htdocs/example/.htaccess /www/htdocs/.htaccess httpd.conf

Nel caso si faccia uso di direttive RewriteRule httpd.conf

# In httpd.conf
RewriteRule "^/images/(.+)\.jpg" "/images/$1.png"
# In .htaccess nella directory root
RewriteRule "^images/(.+)\.jpg" "images/$1.png"
# In .htaccess in images/
RewriteRule "^(.+)\.jpg" "$1.png"

In un file .htaccess RewriteRule .htaccess images /images/

La seconda considerazione riguarda la sicurezza

AllowOverride: Categorie di direttive ammesse

Abbiamo già visto in precedenze che se la direttiva AllowOverride viene impostata ad All, ogni direttiva sarà ammessa all'interno del file .htaccess.

Per una maggiore granularità, sono inoltre definiti i seguenti contesti:

Nome contesto Descrizione
AuthConfig Consente l'uso di direttive relative all'autorizzazione (AuthDBMGroupFile AuthDBMUserFile AuthGroupFile AuthName AuthType AuthUserFile Require etc.
FileInfo Consente l'uso di direttive relative ai tipi di documento (ErrorDocument ForceType LanguagePriority SetHandler SetInputFilter SetOutputFilter Add* Remove* mod_mime Header RequestHeader SetEnvIf SetEnvIfNoCase BrowserMatch CookieExpires CookieDomain CookieStyle CookieTracking CookieName mod_rewrite RewriteEngine RewriteOptions RewriteBase RewriteCond RewriteRule mod_alias Redirect RedirectTemp RedirectPermanent RedirectMatch Action mod_actions
Indexes Consente l'uso di direttive relative all'indicizzazione della directory (AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon DirectoryIndex FancyIndexing HeaderName IndexIgnore IndexOptions ReadmeName
Limit Consente l'uso di direttive relative al controllo dell'accesso all'host (Allow Deny Order
Nonfatal=[Override|Unknown|All] Modifica il comportamento del server in caso di errori di configurazione, che normalmente provocano un Internal Server Error, in modo tale che non comportino errrori fatali, ma semplici warning, che verranno registrati. In particolare:

  • Nonfatal=Override considera non fatali gli errori relativi a direttive non consentite mediante AllowOverride
  • Nonfatal=Unknown considera non fatali gli errori relativi a direttive non riconosciute, ad esempio per errori di digitazione o perchè il modulo del server che le rende disponibili;
  • Nonfatal=All è equivalente a specificare entrambi i precedenti parametri.

Si noti che un errore sintattico in una direttiva valida causerà comunque un Internal Server Error.

È bene notare anche che la trasformazione in warning dei suddetti errori fatali può avere un impatto significativo sulla sicurezza. Per esempio, se AllowOverride AuthConfig

Options[=Option Consente l'uso di direttive che controllano specifiche caratteristiche della directory (Options XBitHack Options

Ti consigliamo anche