tl; dr
Sim, é o caminho correto.
Mas para ser mais semântico : Sim, é a maneira correta de permitir .htaccesssubstituir todas as diretivas no /var/wwwdiretório.
Como você descobriu, AllowOverrideé permitido apenas na Directoryseção
Usando seu exemplo:
<Directory "/var/www">
AllowOverride All
</Directory>
Isso está dizendo ao apache que todas as configurações podem ser substituídas nos /var/wwwsubdiretórios e em todos os seus subdiretórios (recursivamente).
Para um exemplo melhor, considere que você tem a seguinte configuração em seu host virtual:
<Directory "/var/www">
AllowOverride All
</Directory>
<Directory "/var/www/uploads">
AllowOverride Limit
</Directory>
E a seguinte estrutura de diretórios:
var/
www/
.htaccess
uploads/
.htaccess
a/
.htaccess
b/
.htaccess
code/
.htaccess
c/
.htaccess
d/
.htaccess
O que eu fiz aqui é criar um .htaccessem todos os subdiretórios do /var/wwwdiretório.
Geralmente não deve ser assim, mas isso é apenas por uma questão de exemplo
Comparando a estrutura de diretórios com a configuração, significa que todos os .htaccessarquivos dentro da /var/wwwpasta e seus subdiretórios, excluindo o /var/www/uploadsdiretório e seus subdiretórios, podem substituir todos os tipos de diretivas.
Mas /var/www/uploadse seus sub-diretórios só pode usar o .htaccessarquivo para substituir os Allow, Denye Orderdirectivas.
Nota: No apache 2.4 (disponível por padrão em 13.10 ou superior) Allow, as diretivas Denye Orderforam substituídas por uma única diretiva denominada Require.