如果访问者收到404错误,则不会在apache中写入任何内容error.log.在访问日志中,它显示如下:
GET /qqq HTTP/1.1" 404 409 "-"
Run Code Online (Sandbox Code Playgroud)
什么也没有error.log.我已经尝试了一切LogLevel.据我了解,这是因为404页面是自定义页面
ErrorDocument 404 /new404.html
Run Code Online (Sandbox Code Playgroud)
但我/etc/apache2在文件中搜索所有文本"404"并且没有找到任何内容(而不是注释行).可能是什么问题?或者也许我可以以某种方式禁用.htaccess文件中的自定义404页面?或者其他任何显示404错误的方法error.log?
Tod*_*ing 15
作为提交Apache错误的人,从Apache 2.4.1开始将404从Error降级为Info级别,这就是理由:
在生产HTTP服务器开放到Internet,404s一直在发生.恶意软件,扫描程序脚本和各种其他东西会探测Web服务器是否存在漏洞,或者只是因为它们可以,并且这些都会触发错误,如果设置了适当的错误级别,这些错误最终会被记录到某处.
大多数生产Web服务器管理员都满足于在访问日志中查看404(与200s和30x重定向一起记录),并希望在错误日志中看到真正的服务器问题 - 他们可以控制修复的事情.在某些服务器中,在error.log中记录404s可能会导致日志垃圾邮件过多,从而导致需要管理员注意的合法问题.
404是内容问题,而不是服务器问题.所以我的建议是查看你的access.log(或等效文件).如果您确实希望在error.log中记录与内容相关的问题,则需要进行设置LogLevel core:info.这将为您提供404s,以及其他一些与内容相关的错误消息.
404“错误”通常不会出现在 Apache 错误日志中,无论您是否有自ErrorDocument定义定义。
404错误并非严格意义上的服务器错误。这是预期的 HTTP 响应,因此它自然会出现在访问日志中(如您所述),而不是错误日志中。“404”是 HTTP 响应代码,而不是服务器错误代码。
但是,您应该能够在错误日志记录中启用其他“信息”消息(例如,LogLevel info在 Apache 2.4 上)以在系统错误日志中获取此“信息”:
[Mon Feb 06 08:00:00.090525 2017] [core:info] [pid 13876:tid 1748] [client 203.0.113.111:54493] AH00128: File does not exist: /home/user/public_html/path/to/file
Run Code Online (Sandbox Code Playgroud)
但是请注意,没有提及“404”——这可能是您的搜索结果空白的原因。不应在生产服务器上维护此 LogLevel。
| 归档时间: |
|
| 查看次数: |
8025 次 |
| 最近记录: |