我正在为Apache2编写perl处理程序。
这是我的配置:
PerlModule xxx::andsf
<Location / >
SetHandler perl-script
PerlHandler xxx::andsf
PerlSendHeader On
</Location>
我的处理程序需要返回客户端511 HTTP状态代码。 你可以在这里阅读511:
如果我的代码 返回505; 我收到了正确的状态 505 HTTP版本不支持。 但是,如果我把 返回511; 我得到 500 - 内部服务器错误。 似乎Apache忽略了奇怪的错误代码。
任何想法如何返回511?
更新处理程序的代码:
package xxx::andsf;
use Apache2::Const
qw( :common );
use Apache2::RequestRec ();
use Apache2::RequestIO ();
sub handler {
my $r = shift;
$r->status_line("511 Network Authentication Requred");
return Apache2::Const::OK;
}
1;
答案 0 :(得分:2)
ModPerl 2?
您可以使用$r->status_line("511 Network Authentication Requred")
然后返回Apache2::Const::OK
(0)
请参阅:http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html#C_status_line_
答案 1 :(得分:0)
我解决了这个问题。 它与ModPerl2无关,而与Apache本身无关。 Apache 2.4只受2.2影响不是问题。 在查看Apache 2.2源代码并修补一些行以接受511(您可以从Apache 2.4的源复制/粘贴这些行)之后,它正确地启动以返回代码511.