在尝试诊断另一个问题时(我询问了在这里),我发现我继承的机器上的 apache 1.3.37 安装不会将 404 错误记录到error_log
。我仔细检查了配置文件中的CustomLog
和ErrorLog
指令,但它们都只是标准的“设置路径和(对于 CustomLog)组合格式”类型。
它确实会正常记录其他错误,例如“权限被拒绝”,但 404 错误会被默默忽略。
这可能是什么原因造成的?我怎样才能让 404 出现(至少是暂时出现)?
答案1
也许自定义日志指令已配置(也检查.htaccess 文件),排除 404。
答案2
事实证明原始问题与此相关 - 问题 URL 包含序列%2F
(URI 编码的正斜杠)。为了保护不了解安全性的 CGI 程序员免受自身无知的影响,Apache 在请求处理过程的早期阶段立即拒绝(作为 404 Not found)任何包含该序列的请求 URL,这显然会绕过对 的任何写入error_log
。