我已经检查了 apache 日志格式 -https://httpd.apache.org/docs/2.4/mod/mod_log_config.html
我无法理解 apache 日志格式中的“%f”参数是什么意思。此参数的描述是“文件名”。但它没有详细说明哪个文件名。在我的例子中,它显示了发出的 http 请求的 referer url。
答案1
对于我尝试的第一个测试系统,使用 Apache/2.4.6 (CentOS):
正如预期的那样 %f
记录文件名。
确切地说,是 Web 服务器用来完成请求(或在文件不存在时尝试使用)的文件系统位置的绝对文件名(包括路径)。
据我所知,该文件名%f
是扩展别名和重写规则后的最终结果。
我还没有测试它显示的内容,例如 Apache httpd 不提供本地文件系统资源的(反向)代理请求。
CustomLog "|/usr/sbin/rotatelogs -l /var/log/httpd/example.com_access_log.%Y.%m 86400" "%h %l %u %t \"%r\" %>s %b - \"%f\""
导致出现如下条目
10.10.160.119 - - [05/Jan/2024:12:26:07 +0100] "GET / HTTP/1.1" 200 463 - "/var/www/html/www.example.com/index.html"
10.10.160.119 - - [05/Jan/2024:12:27:12 +0100] "GET /test3 HTTP/1.1" 404 203 - "/var/www/html/www.example.com/test3"