如何记录有关 cookie 的信息?

15 apache-2.2

我想在我的 Apache 访问日志中添加 cookie 信息,即:电子邮件、用户名(cookie 是由 php 文件创建的,而不是 Apache)。

我可以添加一些log.conf文件类似于:\"%{cookieName}i\"

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,我是否使用 cookie 日志并将其与访问日志结合起来?

Lad*_*ada 25

可以通过三种方式将 cookie 放入 Apache 日志:

%{cookiename}C
这将匹配浏览器在请求中发送的命名 cookie,但不匹配任何其他 cookie。

%{Cookie}i
这将记录请求中发送到服务器的整个 Cookie: 标头。如果设置了许多 cookie 或者任何 cookie 有大量数据,这可能会非常广泛。

%{Set-Cookie}o
这将匹配服务器在响应中发送的整个 Set-Cookie: 标头。

请注意,“cookiename”应替换为您要记录的 cookie 的名称,而其他两个方法应完全按照所写的方式放置在您的 CustomLog 指令中。这两个分别是请求和响应中的匹配头。它们可用于匹配任何标头,而不仅仅是 cookie 标头。


pQd*_*pQd 10

在你的虚拟主机配置中试试这个:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"" with_cookies
CustomLog /var/log/apache2/my-access.log with_cookies
Run Code Online (Sandbox Code Playgroud)

为我工作;my-access.log 中的输出:

83.0.11.22 - - [02/Aug/2009:12:31:30 +0200] "GET /ct/ HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1" "c1=1; c2=2; PHPSESSID=6c4513f22852a235b8988da822f89d04"
Run Code Online (Sandbox Code Playgroud)