Похоже, этот синтаксис не позволяет Apache обслуживать любые страницы из / var / www или подкаталогов.
<Directory "/var/www">
Allow from None
Order allow,deny
</Directory>
Я хочу, чтобы это поведение было общим правилом, за некоторыми исключениями. Например, я хочу, чтобы у пользователей был доступ к
/var/www
/var/www/css
/var/www/js
но нет:
/var/www/app
/var/www/xml
/var/www/foo
/var/www/bar
... and many more
Вы могли бы работать с DirectoryMatch чтобы установить правило запрета для большинства каталогов, кроме некоторых из них.
Но я думаю, что ваша настоящая проблема в том, что у вас много папок в корне вашего веб-каталога (/ var / www), и вы не хотите, чтобы кто-либо имел доступ к этим каталогам. Так почему они здесь?
Более чистая организация пути:
Apache не может получить доступ к чему-либо до DocumentRoot, кроме случаев, когда вы устанавливаете некоторые псевдонимы, но псевдонимы вам не нужны. все вещи, которые не требуют прямого доступа через URL-адрес, не должны находиться в DocumentRoot. Большинство CMS игнорируют это основное правило просто потому, что они хотят, чтобы их можно было легко развернуть на очень жестких политиках хостов (где у вас есть доступ только к корню документа через ftp).
Это можно сделать на любом языке, jsp 'asp' php. Вам нужен только бутстрапер файла (а именно index.php, index.jsp, index.asp) в корне веб-каталога, любой другой ресурс загружается в приложение через директивы include и настройки пути к библиотеке.
Благодаря этому вы избежите множества проблем с раскрытием информации (за исключением всего, что вы можете найти прикрепленным к пакетам js-библиотек, не забудьте приостановить выполнение php на пути к js-ресурсам).
Если вы не разрешаете ни от кого или запрещаете все, то доступ к содержимому каталога будет запрещен никому.
если вы хотите более точный контроль, чем все или ничего, вам следует взглянуть на контроль доступа в документах apache, которые в основном
[ allow | deny ] from address
адрес может быть доменом, IP или именем хоста.