奇怪的cgi行为

时间:2011-02-21 11:43:33

标签: perl apache logging cgi

我从apache下运行的perl cgi脚本中得到了一些非常讨厌的行为。 我在简单的印刷语句结尾处添加了引用信息,这让我感到疯狂。

[Sun Feb 20 21:34:47 2011] [error] [client xx] ruid: 48, referer: http://www.x.com/
[Sun Feb 20 21:34:47 2011] [error] [client xx] euid: 48, referer: http://www.x.com/
[Sun Feb 20 21:34:47 2011] [error] [client xx] test, referer: http://www.x.com/
[Sun Feb 20 21:34:47 2011] [error] [client xx] Premature end of script headers: test.cgi, referer: http://www.x.com/

这似乎只有在通过从另一个页面导航到达网址时才会发生(因此有一个引用是的)。上面的apache日志输出是使用下面非常简单的depo脚本生成的:

#!/usr/bin/perl -w

use strict;
use warnings;

use CGI;

my $q = CGI->new;

print STDERR "ruid: $<\n";
print STDERR "euid: $>\n";
print STDERR "test\n";

之前有人见过吗?感觉就像我需要关闭的apache设置。

由于 马特

1 个答案:

答案 0 :(得分:1)

查看您的apache配置文件(httpd.conf和朋友)并找到错误日志使用的CustomLog指令,以查看它使用的LogFormat,然后修改LogFormat(或创建一个新的)从要包含在日志消息中的字段列表中删除%{Referer}。 (当然,不要忘记在更改后重新加载apache配置。)