Como silenciar mensagens inúteis de log do Apache mod_rewrite?

2

Eu tenho algumas regras mod_rewrite para redirecionar solicitações de lixo feitas por bots para uma página 404 estática, como:

RewriteRule ^(.*)\.asp(.*)$ https://%{SERVER_NAME}/errors/404.html [L,R=301,NC]

Eu tenho algumas dúzias dessas regras. No entanto, ao inspecionar meu log de erros do Apache, estou vendo, para cada solicitação única, que uma entrada de log está sendo criada para cada regra, como:

[Wed May 30 10:52:59.740327 2018] [rewrite:trace3] [pid 2021:tid 140011088312064] mod_rewrite.c(476): [client 10.91.178.131:62065] 10.91.178.131 - - [example.com/sid#7f56e5f7bc18][rid#7f56dc0100a0/initial] applying pattern '^(.*)\.asp(.*)$' to uri '/admin/', referer: https://example.com/admin/record/149/

Por que o Apache aplica todas as regras a todas as URLs quando elas obviamente não correspondem? Isso está aumentando o meu log de erros e tornando praticamente impossível encontrar mensagens de erro reais. Como faço para parar isso ou, no mínimo, impedir que o Apache envie spam para o arquivo de log com essas entradas?

    
por Cerin 30.05.2018 / 16:57

1 resposta

1

Why is Apache applying every rule to every URL when they obviously don't match?

Não está necessariamente aplicando a regra, está testando se ela deve ser aplicada e é para isso que essa entrada de log de "depuração" é necessária. Esse nível adicional de log não está habilitado por padrão - alguém habilitou isso explicitamente na configuração do servidor e aparentemente (inadvertidamente) o deixou habilitado. Isso nunca deve ser ativado permanentemente em um servidor de produção.

No Apache 2.4+, procure a diretiva LogLevel em sua configuração do servidor / host virtual. Por exemplo:

LogLevel rewrite:trace3

Note, no entanto, que é possível definir o nível de log de vários módulos (ou todos módulos) com uma única diretiva. Definir o LogLevel para debug , trace1 .. trace8 é considerado "debug" -level. Quanto maior o nível, mais mensagens são registradas.

E remova, comente ou defina como padrão:

LogLevel warn

Referência: link

    
por 30.05.2018 / 17:42