Правила Apache 2.4, значения по умолчанию и переопределения для подкаталогов с FilesMatch

Я испытываю затруднения при понимании основной апачской конфигурации.

Я хочу включить ряд значений по умолчанию для всех файлов и каталогов на сервере, но затем позволить/запретить или изменить их для определенных файлов и/или каталогов.

Значения по умолчанию, которые я хочу, должны запретить доступа ко всем файлам на сервере и предоставить доступ ко всем каталогам ниже веб-корня (/var/www/html).

Я хочу предоставить доступ к определенным файлам (которые соответствуют regex) в веб-корне, и все подкаталоги (который может быть создан динамично в будущем) и предоставить доступ к определенным файлам и/или каталогам от данного IP (или подсеть) только.

Все ошибочные страницы (для файлов/каталогов, которые не существуют или не позволяются), отображаются на простой строке в localized-error-pages.conf.

Я также хочу отключить списки каталогов для всех каталогов, но показать файл index.html, если он существует. Например, я хотел бы что-то как следующее (все покажут ошибочную страницу, если файл или каталог не будет существовать или не будет позволен):

example.com                # shows index.html in root
example.com/test.txt       # shows test.txt in root
example.com/test.php       # runs if IP matches
example.com/dir1           # shows index.html in dir1
example.com/dir1/test.txt  # shows test.txt in dir1
example.com/dir2           # shows index.html for dir2 if IP matches

Если корень является/var/www/html, я хочу сделать что-то как следующее (на человечности в apache.conf), ОТМЕТИТЬ, что это не работает:

...
<FilesMatch "^.*$>
    Require all denied
</FilesMtch>
<FilesMatch "^.*\.(html|txt|pdf)$">
    Require all granted
</FilesMatch>
<FilesMatch "^.*\.php$">
    Require ip 192.168.0.10
</FilesMatch>

<Directory />
    AllowOverride None
    Require all denied
</Directory>
<Directory /var/www/html>
    AllowOverride None
    Options Indexes FollowSymLinks
    <LimitExcept GET POST OPTIONS>
        Require all granted
    </LimitExcept>
</Directory>
<Directory /var/www/htm/dir2>
    AllowOverride None
    Require ip 192.168.0.10
<Directory>

Если я ввожу адрес для корня или какого-либо подкаталога (не указывая index.html), я хочу показать index.html для того каталога, если он существует или ошибочная страница по умолчанию (отображенный на простой строке в localized-error-pages.conf. Например:

Проблема даже после большого поиска и чтения я не понимаю, как апачская конфигурация работает, особенно с порядком определения правил и как они располагаются каскадом к другим каталогам; но я думаю, что рабочий пример помог бы мне понять.

Кто-либо мог помочь?

2
задан 28 November 2014 в 12:37

0 ответов

Другие вопросы по тегам:

Похожие вопросы: