tl; dr
Oui c'est la bonne façon.
Mais pour être plus sémantique : oui, c’est la bonne façon de permettre .htaccess
de surcharger toutes les directives du /var/www
répertoire.
Comme vous l'avez découvert, AllowOverride
est autorisé uniquement dans cette Directory
section.
En utilisant votre exemple:
<Directory "/var/www">
AllowOverride All
</Directory>
Cela indique à Apache que toutes les configurations peuvent être remplacées dans le /var/www
sous-répertoire et dans tous ses sous-répertoires (de manière récursive).
Pour un meilleur exemple, considérons que vous avez la configuration suivante dans votre hôte virtuel:
<Directory "/var/www">
AllowOverride All
</Directory>
<Directory "/var/www/uploads">
AllowOverride Limit
</Directory>
Et la structure de répertoire suivante:
var/
www/
.htaccess
uploads/
.htaccess
a/
.htaccess
b/
.htaccess
code/
.htaccess
c/
.htaccess
d/
.htaccess
Ce que j'ai fait ici, c'est créer un .htaccess
dans chaque sous-répertoire du /var/www
répertoire.
Cela ne devrait généralement pas être comme ça, mais ceci est juste pour l'exemple
En comparant la structure de répertoires à la configuration, cela signifie que tous les .htaccess
fichiers du /var/www
dossier et de ses sous-répertoires, à l'exception du /var/www/uploads
répertoire et de ses sous-répertoires, peuvent remplacer tous les types de directives.
Mais /var/www/uploads
et ses sous-répertoires ne peuvent utiliser le .htaccess
fichier que pour remplacer les directives Allow
, Deny
et Order
.
Remarque: À partir d'apache 2.4 (disponible par défaut dans 13.10+) Allow
, les directives , Deny
et Order
ont été remplacées par une seule directive nommée Require
.