Как использовать пользовательскую переменную в операторе If-Else внутри конфигурации Apache? - PullRequest
0 голосов
/ 21 ноября 2018

Вот мой код (я закомментировал часть if-else, поскольку она не работает)

фрагменты / содержимое моих файлов конфигурации

/ etc / httpd / conf.d / staff.vhost

Define host_domain "staff"

Include /etc/httpd/conf.d/stage_template.vhost

/ etc / httpd / conf.d / stage_template.vhost

    #<If "${host_domain} == 'main'">
    #    ServerAlias stage.myhost.com
    #</If>
    #<Else>
        ServerAlias stage-${host_domain}.myhost.com
    #</Else>

$ {host_domain} можетесть 3 возможных значения: основной или персонал или клиент

Я пытался:

  • $ {host_domain}: я получаю эту ошибку

    AH00526: Синтаксисошибка в строке 9 файла /etc/httpd/conf.d/stage_template.vhost: невозможно проанализировать условие условия: синтаксическая ошибка, неожиданный T_OP_STR_EQ, ожидание '('

  • % {host_domain}:Я получаю еще одну ошибку

    AH00526: Синтаксическая ошибка в строке 9 файла /etc/httpd/conf.d/stage_template.vhost: Невозможно выполнить синтаксический анализ условия: ошибка синтаксического разбора около '%'

Спасибо!

edit: я использовал эту страницу в качестве руководства.

1 Ответ

0 голосов
/ 21 ноября 2018
<If "false">
...
</If>

Посмотрите на Выражения в HTTP-сервере Apache .

РЕДАКТИРОВАТЬ:

если host_domain не является переменной, созданной самим, введите верхний регистр ${HOST_DOMAIN}.

и заключите его в одинарные кавычки:

#<If "'${host_domain}' == 'main'">

Взгляните на this.

...