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

Logformat для перехвата запрашиваемого имени хоста в сценарии * .domain.com?

У меня есть виртуальный хост 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