0

別の場所にhttp302応答を返し、その応答にカスタムヘッダーを追加するperlページを作成しようとしています。したがって、希望するhttp応答は次のようになります。

HTTP/1.1 302 Moved
Date: Sun, 15 Apr 2012 10:59:02 GMT
Server: Apache
Location: http://www.google.com
Content-Length: 396
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
CUSTOM_HEADER: CUSTOM_VALUE

私はCGIを使ってみました:

#!/bin/perl

use strict;
use APR::Request::Apache2;
my $r = shift;
$r->content_type('text/html; charset=utf-8');
$r->headers_out()->add("CUSTOM_HEADER", "CUSTOM_VALUE");
$r->headers_out()->add("Location", "http://www.google.com");
$r->status(302);

そして私はグーグルに302応答を受け取りますが、CUSTOM_HEADERはありません。ステータスを200に変更する $r->status(200);と、CUSTOM_HEADERが取得されます。では、この動作はどうですか?ヘッダーを302応答に追加するにはどうすればよいですか?

4

2 に答える 2

2

を使用する必要がありますerr_headers_out()。これらは、エラーやリダイレクトでも出力されます。

于 2012-04-15T12:59:13.660 に答える
2

$r->err_headers_out->setまたはを使用する$r->err_headers_out->add

my $r = shift;

$r->content_type('text/html; charset=utf-8');
$r->err_headers_out->set(Location => "http://www.google.com");
$r->status(302);
于 2012-04-15T13:59:12.203 に答える