Eu trabalhei com o seguinte:
#!/usr/bin/perl
#
## disable buffered I/O which would lead
## to deadloops for the Apache server
$| = 1;
#
## read URLs one per line from stdin
while (<>) {
my $line = $_;
if ($line eq "input_from_apache\n"){
print "my_desired_output\n";
}
else{
print "\n";
}
}
Na melhor das hipóteses, os caracteres de nova linha são o que eu estava perdendo. Para alguém tentando depurar um script RewriteMap eu sugiro:
-
Verifique se você tem:
RewriteEngine On
RewriteLog /var/log/httpd/rewrite.log
RewriteLogLevel 9
no seu httpd.conf para que você possa ver o que o mod_rewrite está fazendo
-
Escreva seu script e, em seguida, inicie-o (por exemplo,
./my_script.pl
) e digite algumas entradas para certificar-se de obter o que espera. Foi assim que percebi que precisava do\n
's