У меня есть виртуальный хост Apache 2.2 с * .example.com ServerName
. Это требуется для моего сценария, все поддомены обрабатываются одним и тем же сайтом.
Теперь в журнале доступа я пытаюсь вычислить LogFormat
переменная (или способ), которая позволит мне регистрировать попросил о доменное имя. Если я использую vhost_combined
формат, все, что я получаю в моем журнале доступа, - это записи * .example.com, а не фактический vhost, который был попросил о.
Кто-нибудь знает, как это сделать?
Ты можешь использовать %{headername}i
чтобы поместить содержимое любого заголовка в директиву LogFormat, поэтому %{Host}i
предоставит вам то, что клиент поместил в заголовок Host: запроса, давая вам именно то, что вы хотите.
См. Документы на http://httpd.apache.org/docs/2.2/mod/mod_log_config.html
Когда вы используете, например, в vhost_combined
Логформат:
CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
Вы можете адаптироваться vhost_combined
добавляя %{Host}i
, например
LogFormat "%v:%p %h %l %u %t %{Host}i \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined