簡體   English   中英

mod_perl如何返回511狀態?

[英]mod_perl How to return 511 status?

我正在為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;

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_

我解決了這個問題。 它與ModPerl2無關,但與Apache本身無關。 對於僅受Apache 2.4影響的這不是問題。 在查看Apache 2.2源代碼並修補了一些行以接受511(您可以從Apache 2.4的源復制/粘貼這些行)之后,它會正確開始返回代碼511。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM