如何配置 httpd.conf 以便里面的脚本仅当查询字符串中有标志参数时才运行?

如何配置 httpd.conf 以便里面的脚本仅当查询字符串中有标志参数时才运行?

mod_perl提供一种运行 perl 脚本的方法httpd.conf

<perl>
...scripts goes here...
</perl>

我该如何配置httpd.conf以便只有查询字符串中<perl></perl>有参数时里面的脚本才会运行?flag

答案1

使用 Perl 评估 query_string,然后if如果未设置参数则使用语句跳过其余部分。

也许是这样的*:

<perl>
     if (length ($ENV{'QUERY_STRING'}) > 0){
           $buffer = $ENV{'QUERY_STRING'};
           @pairs = split(/&/, $buffer);
           foreach $pair (@pairs){
                ($name, $value) = split(/=/, $pair);
                $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
                $in{$name} = $value; 
           }
     }
     if (defined $in{'flag'}){
          #Your Code here
     }
</perl>

*可能还有其他方法可以分解查询字符串,这是我的例子

相关内容