У nginx есть $scheme
переменная, используемая в его log_format
строках.
%H
протокол запроса (например, «HTTP / 1.1»).
Как я могу сделать то же самое с Apache?
apache-2.2
logging
Владимир Пантелеев
источник
источник
mod_env
усилия могут потерпеть неудачу из-за синтаксических ошибок .SetEnv
берет свою переменную и значение без знака равенства:SetEnv URL_SCHEME http
.SetEnvIf
строка не работает на Apache <2.4.1, потому что,mod_setenvif
очевидно, не имеет доступа к среде ssl . почти сводил меня с ума на 2.2.22.mod_ssl
переменная окружения устанавливается только в том случае, если вы явно указали ей сделать это черезSSLOptions
.По какой-то причине я не смог заставить работать приведенные выше примеры, поэтому нашел другой способ: вы можете добавить 2 правила перезаписи в вашу конфигурацию следующим образом:
Затем добавьте это в определение LogFormat.
источник
Поскольку схема URL не доступна напрямую в формате журнала Apache, вы можете зарегистрировать канонический порт (например, 80/443) сервера, обслуживающего запрос, используя% p в качестве альтернативы:
источник
Это работает для меня с Apache 2.4.23:
%{varname}x
доступно только при загрузке mod_ssl, см .: https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#logformatsисточник
Определите выход журнала и добавьте% H к нему. Это то же самое для Apache.
Итак, вы создаете
LogFormat
подобное и afaik есть пара, определенная в конфигурации apache по умолчанию.и добавьте имя LogFormat (в данном случае «общего») в конец вашего вызова файла журнала
Просто посмотрите здесь для получения дополнительной информации о журнале и здесь о различных форматных строках.
источник
%H
не делает то, что мне нужно.