如何防止 Apache 记录 404 错误?

如何防止 Apache 记录 404 错误?

因此,每当用户尝试获取我 Apache 服务器上不存在的文件时,我都会在访问日志中收到 404 行:

[29/Sep/2010:12:14:45 +0200] "GET /asdf HTTP/1.1" 404

我也在错误日志中看到了这个:

[Wed Sep 29 12:14:45 2010] [error] [client] File does not exist: /www/site/asdf

有没有办法可以抑制 404 错误出现在错误日志中 - 仅出现在访问日志中?

答案1

错误日志(http://httpd.apache.org/docs/2.2/mod/core.html#errorlog) 没有条件。您可以将日志发送到 syslog 或脚本并进行过滤。

答案2

是的你可以从错误日志中隐藏它们,但仍保留在访问日志中。只需将这些行添加到 .htaccess 即可:

# Don't log missing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(content\asdf)$ - [R=404,L]

它使用 mod_rewrite。

RewriteCond 用于确保文件确实不存在。存在的文件将照常提供。

R=404 表示当客户端访问任何包含“asdf”的文件时,发送 404 Not Found 状态代码。您需要修改最后一行括号中的表达式以满足您的需求。

也可以找到这个答案这里

答案3

尝试使用 LogLevel 指令(http://httpd.apache.org/docs/current/mod/core.html#loglevel)。虽然它不是你想要的,但它可以满足你的需求。

答案4

错误 404 在 httpd.conf 或 .htacces 中定义如下:

错误文档 404 /404.html

您可以重定向到索引页:

错误文档 404 /index.html

或者您可以创建一个空白页 blank.html 并将配置更改为:ErrorDocument 404 /blank.html

相关内容