Posso gravar a saída de log de minha escolha da configuração do Apache (com base nas condições de reescrita)?

2

Eu tenho algum conteúdo que está disponível apenas para pessoas que passam por uma pesquisa do GeoIP e correspondem a determinados países. Isso é feito por mod_rewrite e tudo funciona bem.

O que eu gostaria de fazer é registrar tentativas com falha, para ajudar a depurar as pessoas que devem conseguir esse conteúdo, mas não conseguem. Para fazer isso no momento, preciso de RewriteLogLevel em 4, o que significa que tudo no host virtual é registrado, em vez de apenas as coisas que estou restringindo.

Este é o exemplo do mod_geoip readme:

GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA$
RewriteRule \.(gif|jpg|png|css)$ - [L] # don't redirect images and stylesheets
RewriteRule ^(.*)$ http://www.canada.com [L] # redirect everything else

Eu gostaria de adicionar algo como

WriteThisToLog "Denied access to $1 from IP $2 due to calculated country $3"

As variáveis estão todas lá - existe uma diretiva que eu possa usar para escrever no log de erros do Apache?

Editar: Eu teria colocado isso no comentário para a resposta correta, mas a formatação era importante. Eu terminei com isso:

RewriteRule ^(.*)$ http://www.canada.com [L,E=GEOIP_FAIL:1] # redirect everything else
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" GEOIP_COUNTRY_CODE=%{GEOIP_COUNTRY_CODE}e" geoip_fail_format
CustomLog /var/log/httpd/geoip_fail_log geoip_fail_format env=GEOIP_FAIL
    
por crb 26.02.2010 / 13:14

1 resposta

1

Existe um módulo chamado mod_log_config que tem diretivas chamadas CustomLog e LogFormat . Basicamente, definimos um formato de saída usando o LogFormat e o redirecionamos para o arquivo mencionado no CustomLog.

    
por 26.02.2010 / 13:22