tl; dr
Sì, è il modo corretto.
Ma per essere più semantici : Sì, è il modo corretto per consentire .htaccessdi sovrascrivere tutte le direttive nella /var/wwwdirectory.
Come hai scoperto, AllowOverrideè consentito solo nella Directorysezione.
Usando il tuo esempio:
<Directory "/var/www">
AllowOverride All
</Directory>
Questo sta dicendo ad Apache che tutte le configurazioni possono essere sovrascritte in /var/wwwtutte le sue sottodirectory (ricorsivamente).
Per un esempio migliore, considera di avere la seguente configurazione nel tuo host virtuale:
<Directory "/var/www">
AllowOverride All
</Directory>
<Directory "/var/www/uploads">
AllowOverride Limit
</Directory>
E la seguente struttura di directory:
var/
www/
.htaccess
uploads/
.htaccess
a/
.htaccess
b/
.htaccess
code/
.htaccess
c/
.htaccess
d/
.htaccess
Quello che ho fatto qui, è creare un .htaccessin ogni sottodirectory della /var/wwwdirectory.
Di solito non dovrebbe essere così, ma questo è solo per il bene dell'esempio
Confrontando la struttura delle directory con la configurazione, significa che tutti i .htaccessfile all'interno della /var/wwwcartella e le sue sottodirectory, esclusa la /var/www/uploadsdirectory e le sue sottodirectory, possono sovrascrivere tutti i tipi di direttive.
Ma /var/www/uploadsei suoi sotto-directory possono utilizzare solo il .htaccessfile per ignorare le Allow, Denye Orderdirettive.
Nota: A partire da apache 2.4 (che è disponibile di default in 13.10+) Allow, le direttive Denye Ordersono state sostituite da un'unica direttiva denominata Require.