Назад | Перейти на главную страницу

How do I configure httpd.conf so that scripts inside <perl></perl> only get run if there's a flag parameter in the querystring?

mod_perl предоставляет способ запускать скрипты Perl в httpd.conf:

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

Как мне настроить httpd.conf так что скрипты внутри <perl></perl> только беги, если есть flag параметр в строке запроса?

Используйте 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>

* могут быть другие способы разбить query_string, вот где я взял свой пример.