Well done, hacker. I've seen this sort of thing before... can't remember where... but the more the merrier! One patch for you: As stated, your script only ever uses the first url in the list for http:// links. This is because $numurl is set to the size of @url before @url is populated. This fixes it, plus condenses your foreach into a map, which is sexy.
#########################################################
#my @url;
my $time = localtime;
print LOG "$time $ENV{'REMOTE_ADDR'}
$ENV{'HTTP_HOST'}$ENV{'REQUEST_URI'}" .
" $ENV{'HTTP_REFERER'} \"$ENV{'HTTP_USER_AGENT'}\"\n";
close LOG;
$punct[1] = ".";
$punct[2] = "!";
$punct[3] = "\?";
$punct[4] = ":";
#foreach (@domains) {
# push @url, "${_}${ap_alias}";
#}
# new code from LAI here:
my $numurl = my @url = map { "${_}${ap_alias}" } @domains;
#########################################################
LAI
__END__