тл; д-р
Так, це правильний шлях.
Але щоб бути більш семантичним : Так, це правильний спосіб дозволити .htaccessпереосмислити всі директиви в /var/wwwкаталозі.
Як ви з’ясували, AllowOverrideце дозволено лише під Directoryрозділом.
Використовуючи свій приклад:
<Directory "/var/www">
AllowOverride All
</Directory>
Це говорить апаші, що всі конфігурації можуть бути переохолоджені в /var/wwwусіх своїх підкаталогах (рекурсивно).
Для кращого прикладу врахуйте, що у вашого віртуального хоста є така конфігурація:
<Directory "/var/www">
AllowOverride All
</Directory>
<Directory "/var/www/uploads">
AllowOverride Limit
</Directory>
І така структура каталогу:
var/
www/
.htaccess
uploads/
.htaccess
a/
.htaccess
b/
.htaccess
code/
.htaccess
c/
.htaccess
d/
.htaccess
Що я тут зробив, - це створити .htaccessв кожному підкаталозі /var/wwwкаталогу.
Зазвичай це не повинно бути таким, але це лише заради прикладу
Порівнюючи структуру каталогу з конфігурацією, це означає, що всі .htaccessфайли, що знаходяться всередині /var/wwwпапки та її підкаталогів, за винятком /var/www/uploadsкаталогу та його підкаталогів, можуть змінювати всі види директив.
Але /var/www/uploadsі його підкаталогів можна використовувати тільки .htaccessфайл для перевизначення Allow, Denyі Orderдирективи.
Примітка: Станом на Апачі 2.4 (який доступний за умовчанням в 13.10+) Allow, Denyі Orderдирективи були замінені однією директивою по імені Require.