因此,每当用户尝试获取我 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