PERL中文件名包含“-”的问题
我创建了一个名为nph-select.pl的文件,并将重定向代码放在下面PERL中文件名包含“-”的问题,perl,cgi,xampp,nph,Perl,Cgi,Xampp,Nph,我创建了一个名为nph-select.pl的文件,并将重定向代码放在下面 #!"D:\xampp\perl\bin\perl.exe" -w use CGI qw/:standard/; my $cgi = new CGI; print $cgi->redirect(-uri => 'http://www.google.com/', -nph => 1); 然后执行文件,它会给我302状态消息,说明文档已经移到了这里。但是,当我仅仅通过删除来重命名同一个文件时,即新文件
#!"D:\xampp\perl\bin\perl.exe" -w
use CGI qw/:standard/;
my $cgi = new CGI;
print $cgi->redirect(-uri => 'http://www.google.com/', -nph => 1);
然后执行文件,它会给我302状态消息,说明文档已经移到了这里。但是,当我仅仅通过删除来重命名同一个文件时,即新文件名为nphselect.pl,那么它也可以正常运行,并进行重定向。有人能告诉我我错过了什么环境吗
我的请求头是
主机本地主机:8080
用户代理Mozilla/5.0 Windows NT 5.1;rv:2.0.1 Gecko/20100101 Firefox/4.0.1
接受text/html、application/xhtml+xml、application/xml;q=0.9,/;q=0.8
接受我们的语言,嗯;q=0.5
接受编码gzip,放气
接受字符集ISO-8859-1、utf-8;q=0.7,*;q=0.7
活命
连接保持活动状态
而且响应头是空的。首先,一些Web服务器对待以“nph-”开头的cgi脚本的方式与对待任何其他cgi脚本的方式不同,因此删除-将改变这一点 你打错电话了;CGI的命名参数都必须以-,如下所示:
print $cgi->redirect(-uri => 'http://perl.about.com/');
使用uri而不是-uri时,它使用的是位置参数,因此它尝试重定向到“url”,您的Web服务器可能完全符合您的条件
如果您要使用nph脚本,设置redirect的nph选项可以提供更完整的标题集;这可能会解决您的问题:
print $cgi->redirect(-uri => 'http://perl.about.com/', -nph => 1);
首先,一些Web服务器对待以“nph-”开头的cgi脚本的处理方式不同于任何其他cgi脚本,因此删除-将改变这一点 你打错电话了;CGI的命名参数都必须以-,如下所示:
print $cgi->redirect(-uri => 'http://perl.about.com/');
使用uri而不是-uri时,它使用的是位置参数,因此它尝试重定向到“url”,您的Web服务器可能完全符合您的条件
如果您要使用nph脚本,设置redirect的nph选项可以提供更完整的标题集;这可能会解决您的问题:
print $cgi->redirect(-uri => 'http://perl.about.com/', -nph => 1);
现在我发现Internet Explorer无法显示网页错误。@Rahul:在您的问题中,请显示完整的当前代码,并说明文件名是什么以及您正在运行的Web服务器。我已在问题中粘贴了当前代码。并添加了-nph=>1。下面是代码,我正在xampp上运行!D:\xampp\perl\bin\perl.exe-w使用CGI qw/:standard/;my$cgi=新cgi;打印$cgi->重定向uri=>,-nph=>1;您必须使用能够显示服务器实际响应的内容才能获得进一步的信息,例如curl-v your url现在我正在获取Internet Explorer无法显示网页错误。@Rahul:在您的问题中,请显示您完整的当前代码,并说明文件名是什么以及您正在运行的Web服务器。我已在问题中粘贴了当前代码。并添加了-nph=>1。下面是代码,我正在xampp上运行!D:\xampp\perl\bin\perl.exe-w使用CGI qw/:standard/;my$cgi=新cgi;打印$cgi->重定向uri=>,-nph=>1;您必须使用能够显示来自服务器的实际响应的东西来获取任何进一步的信息,例如,curl-v您的url