tl; dr
Sí, es la forma correcta.
Pero para ser más semántico : Sí, es la forma correcta de permitir .htaccessanular todas las directivas en el /var/wwwdirectorio.
Como descubriste, AllowOverridesolo está permitido en la Directorysección.
Usando tu ejemplo:
<Directory "/var/www">
AllowOverride All
</Directory>
Esto le dice a Apache que todas las configuraciones pueden ser anuladas en /var/wwwy en todos sus subdirectorios (recursivamente).
Para un mejor ejemplo, considere que tiene la siguiente configuración en su host virtual:
<Directory "/var/www">
AllowOverride All
</Directory>
<Directory "/var/www/uploads">
AllowOverride Limit
</Directory>
Y la siguiente estructura de directorios:
var/
www/
.htaccess
uploads/
.htaccess
a/
.htaccess
b/
.htaccess
code/
.htaccess
c/
.htaccess
d/
.htaccess
Lo que hice aquí, es crear un .htaccessen cada subdirectorio del /var/wwwdirectorio.
Por lo general, no debería ser así, pero esto es solo por el bien del ejemplo
Al comparar la estructura de directorios con la configuración, significa que todos los .htaccessarchivos dentro de la /var/wwwcarpeta y sus subdirectorios, excluyendo el /var/www/uploadsdirectorio y sus subdirectorios, pueden anular todo tipo de directivas.
Sin embargo, /var/www/uploadsy sus subdirectorios sólo pueden utilizar el .htaccessarchivo para anular las Allow, Denyy Orderlas directivas.
Nota: A partir de apache 2.4 (que está disponible por defecto en 13.10+) Allow, las directivas , Denyy Orderfueron reemplazadas por una directiva única llamada Require.