Como desabilitar o log do apache ao acessar determinados diretórios?

6

Como obtenho o apache para impedir que solicitações http sejam registradas em um diretório? Eu quero fazer algo parecido

<IfModule mod_userdir.c>
    UserDir public_html

    <Directory /home/*/public_html/nolog>
        Options NoAccessLog
    </Directory>
</IfModule>
    
por nidi 07.03.2010 / 02:35

1 resposta

8

Você pode definir um sinalizador de ambiente sempre que uma URL específica for solicitada e filtrar o log com base nisso:

<IfModule mod_userdir.c> 
    UserDir public_html 

    SetEnvIf Request_URI "/nolog" dontlog
    CustomLog /var/log/apache2/useraccess_log combined env=!dontlog
</IfModule> 

Todas as leituras relacionadas podem ser encontradas no link Seção "Usando Variáveis de Ambiente - Log Condicional"

O que essas duas linhas fazem é que, sempre que um cliente solicitar uma URL que contenha a string "/ nolog", ele definirá a variável de ambiente dontlog.

Na próxima linha, a opção "env =! dontlog" informa à diretiva CustomLog para registrar o acesso do Cliente, a menos que a variável dontlog esteja definida. O ! nega a directiva. Se você deixasse o! para que ele leia "env = dontlog" do que somente registra o acesso a caminhos que tenham "/ nolog" no URL solicitado.

EDIT: Eu removi o ^ no regexp "/ nolog" para trabalhar com o seu exemplo e adicionei mais algumas explicações.

    
por 07.03.2010 / 08:16