我正在尝试编写一个 perl 页面,该页面将 http 302 响应返回到不同的位置,并将自定义标头添加到该响应中。所以我想要的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 响应中?