来识别协议(http与https)我正在编辑一个Perl CGI应用程序,它在HTTPS下运行时执行特殊处理。如何使用Perl的CGI.pal
现在,我试图通过手动寻找的“https://”,以检测它在请求URI:
my $is_secure = $cgi->request_uri =~ m{^https://};
是否有这样做的稍微更清洁的方式?
来识别协议(http与https)我正在编辑一个Perl CGI应用程序,它在HTTPS下运行时执行特殊处理。如何使用Perl的CGI.pal
现在,我试图通过手动寻找的“https://”,以检测它在请求URI:
my $is_secure = $cgi->request_uri =~ m{^https://};
是否有这样做的稍微更清洁的方式?
CGI.pm具有,根据the documentation一个https()
方法:
上存在的HTTPS环境变量操作时SSL协议生效。可以用来确定SSL是否打开。
这可能是你在找什么。如果没有参数,它将返回一个HTTPS环境变量列表。
使用$ ENV { 'HTTPS'}
my $is_secure = $ENV{'HTTPS'};
或许更好,只需使用$ ENV { 'HTTPS'},而不是$ is_secure
我希望大多数主流服务器都有一些环境变量,即使它不是这样。 – 2014-11-10 18:41:48
我知道这是一个老问题,但它是与我正在寻找的东西有关。不幸的是,你链接到的文档并没有告诉你如何去做,只是可以做到。 – Justin 2014-11-10 14:58:47