如何在Perl CGI中重定向用户

时间:2014-01-12 23:03:45

标签: perl

如何在Perl中重定向用户?...

我在网上尝试过很多方法,虽然似乎都没有。

例如,我试过这个:(虽然它似乎没有用。只需在页面上打印出“位置:{url ....}”

#!/usr/bin/perl

use CGI;

$q = CGI->new;
print $q->header("text/html");
$url = $q->param('url');

print "Location: $url\n\n";

任何帮助将不胜感激,谢谢,

3 个答案:

答案 0 :(得分:1)

您在主体中而不是在标头中包含了Location标头,并且您从未设置正确的响应代码。

该模块的文档有一个标题为GENERATING A REDIRECTION HEADER的部分,其中显示了如何构建标题。

#!/usr/bin/perl
use strict;
use warnings;

use CGI qw( );

my $q = CGI->new();
my $url = $q->param('url');
print $q->redirect($url);

答案 1 :(得分:0)

删除打印$q-header("text/html");

答案 2 :(得分:0)

为什么在只需制作模块时加载模块:

print("Status: 301 Moved Permanently\nLocation: $url\n\n");

或最终更加尊重:

print("Status: 301 Moved Permanently\nLocation: $url\nContent-Type: text/html; charset=UTF-8\n\n");

对于302,替换为“302 Found”。