тл; д-р
Так, це правильний шлях.
Але щоб бути більш семантичним : Так, це правильний спосіб дозволити .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
.