O ErrogLog ( link ) não é condicional. Você pode enviar os logs para o syslog ou script e filtrá-lo.
Assim, sempre que um usuário tenta buscar um arquivo no meu servidor Apache que não existe, recebo uma linha 404 no log do Access:
[29/Sep/2010:12:14:45 +0200] "GET /asdf HTTP/1.1" 404
E eu também recebo isso no log de erros:
[Wed Sep 29 12:14:45 2010] [error] [client] File does not exist: /www/site/asdf
Existe uma maneira de evitar que 404 erros apareçam no log de erros - somente no log de acesso?
O ErrogLog ( link ) não é condicional. Você pode enviar os logs para o syslog ou script e filtrá-lo.
Sim, você pode suprimi-los do log de erros, mas ainda os tem no log de acesso . Basta adicionar essas linhas ao .htaccess:
# Don't log missing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(content\asdf)$ - [R=404,L]
Ele usa mod_rewrite.
O RewriteCond está lá para garantir que o arquivo realmente não exista. Os arquivos que existem serão exibidos normalmente.
R = 404 diz para enviar o código de status 404 Not Found quando o cliente acessa os arquivos que contêm "asdf". Você precisa modificar a expressão entre parênteses, na última linha, para atender às suas necessidades.
Esta resposta também é encontrada aqui .
Tente fazer experiências com a diretiva LogLevel ( link ). Não é exatamente o que você quer, mas pode atender às suas necessidades, no entanto
O erro 404 é definido em httpd.conf ou .htacces como:
ErrorDocument 404 /404.html
Você pode redirecionar para a página de índice:
ErrorDocument 404 /index.html
ou você pode criar uma página em branco blank.html e alterar a configuração para: ErrorDocument 404 /blank.html