Как я могу установить ServerName
директива в Apache к переменной окружения HTTP_HOST
Я пытался:
ServerName %{HTTP_HOST} #or ServerName ${HTTP_HOST} or expr=%{HTTPS}
Define server_name %{HTTP_HOST} #or ${HTTP_HOST} or expr=%{HTTPS}
Ничего не работает. Есть ли способ сделать это?
Это невозможно и даже не нужно. Если бы это было возможно, это противоречило бы Сопоставление виртуального хоста. Как HTTP_HOST
серверная переменная содержит значение Host:
заголовок, это будет означать, что он всегда соответствует каждому запросу. Apache уже работает так: если нет подходящего VirtualHost, он будет использовать первый виртуальный хост на основе имени для этого IP-адреса и порта.
Первый виртуальный хост на основе имени в файле конфигурации для данной пары IP: порт важен, потому что он используется для всех запросов, полученных по этому адресу и порту, для которых нет другого виртуального хоста для этой пары IP: порт.
ServerName
илиServerAlias
. Он также используется для всех SSL-соединений, если сервер не поддерживает Индикация имени сервера.
Следовательно, наличие только одного виртуального хоста на основе имени будет идентично тому, что вы, вероятно, пытаетесь сделать со своим ServerName %{HTTP_HOST}
.