I tryed mod_rewrite to redirect base on user_agent, it works very fine! but I still want to know how to do it in mod_perl.
2007/12/2, Silent <[EMAIL PROTECTED]>: > > Hi, > > I want to develop a script like this: > > the script randomly send a html page or mp3 file, but I met some problems, > > > #!/usr/bin/perl > > use Apache; > my $r=Apache->request; > > my @file = ( { '/1.mp3' => 'audio/mpeg' }, > { '/aaa.html' => 'text/html' }, > { '/bbb.html' => 'text/html' }, > { '/1.png' => 'image/png'} > ); > > my $idx = int rand(4); > my @ks = keys %{$file[$idx]}; > my $key = shift @ks; > > warn("$file[$idx]{$key} -- $key"); # log > > $r->content_type($file[$idx]{$key}); # content-type > > #$r->send_http_header; # this seems can be omited > > $r->internal_redirect_handler($key); # redirect to file , also tryed > "internal_redirect" > > #### end > > I am using apache1.3.x+mod_perl 1.29 > > <IfModule mod_perl.c> > PerlModule Apache::Registry > <IfModule mod_alias.c> > Alias /perl/ /var/www/perl/ > </IfModule> > <Location /perl> > SetHandler perl-script > PerlHandler Apache::Registry > Options +ExecCGI > </Location> > </IfModule> > > the url is http://192.168.0.1/rand/asd.mp3 , rand is the script > name, asd.mp3 is just a fake path_info. > > tested with MSIE6 and firefox2 on windowsXP-pro-sp2, > > firefox2 works fine, when mp3 file reached, it ask for download or play > > MSIE6 sometimes works, > but sometimes: > 1. sometimes text file was processed by windows mediaplayer > 2. sometimes png file was processed by windows mediaplayer > 3. sometimes mp3 file was showed as text file, (losts of non-string char > in IE) > > and I am sure the content-type is sended correctly (watching the log warn) > > are the problems as IE6 natures ? > is there any other proper way to do this ? > > > > question 2: > with mod_perl2, internal_redirect seems can access system file, such as > /etc/*, but mod_perl1 seems can only access files under apache documentroot > right ? > > thanks! >