Назад | Перейти на главную страницу

Apache: тестирование нескольких модулей

Мы можем использовать Apache IfModule директива для проверки наличия или отсутствия определенного модуля. Apache также допускает вложенные IfModule директивы, которые можно использовать для тестирования нескольких модулей, другими словами, мы можем реализовать логику AND.

Можно ли еще реализовать логику OR? Например, можно ли что-то использовать аналогичный к этому:

<IfModule mod_php5.c OR sapi_apache2.c>
    # Some directives
</IfModule>

Вместо этого:

<IfModule mod_php5.c>
    # Some directives
</IfModule>
<IfModule sapi_apache2.c>
    # Absolutely same directives with mod_php.c
</IfModule>

Хотя это не идеально, вы можете поместить нужные директивы в отдельный файл, а затем Include его в соответствующих местах. Я не верю, что есть способ выполнить логическое ИЛИ в одном IfModule заявление.

Вот что я придумал:

<IfModule mod_php5.c>
    # Some directives
</IfModule>
<IfModule sapi_apache2.c>
    <IfModule !mod_php5.c>
        # Absolutely same directives with mod_php.c
    </IfModule>
</IfModule>

<IfModule> разделы могут быть вложенными, что может использоваться для реализации простых многомодульных тестов.

http://httpd.apache.org/docs/2.4/mod/core.html#ifmodule

Не уверен, с каких пор это будет доступно.