mod_rewrite is going to be faster for this and easier to implement, I'd
say.

RewriteEngine on
RewriteCond %{HTTP_HOST} !^myserver\.rhythm\.com [NC]
RewriteRule ^/(.*) http://myserver.rhythm.com/$1 [L,R]

in your httpd.conf will probably do the trick.

Of course this does't solve your conundrum vis a vis PerlTransHandler, but
it's a more elegant solution anyway, imho.

- nick

~~~~~~~~~~~~~~~~~~~~   
Nick Tonkin   {|8^)>


On Wed, 12 Jun 2002, Rasoul Hajikhani wrote:

> A funny thing is happening with my PerlTransHandler...
> It is not being called at all... :(
> I have added warn messages but they never appear in the error log.
> I am at a loss and hoping that some one may have an answer...
> -r
> 
> Lyle Brooks wrote:
> > 
> > Quoting Rasoul Hajikhani ([EMAIL PROTECTED]):
> > > Hello folks,
> > > I am trying to implement a simple PerlTransHandler to change:
> > >
> > > http://myserver/
> > >
> > > to
> > >
> > > http://myserver.rhythm.com/
> > >
> > > And here is my code:
> > >
> > > package MIS::GENERAL::FixURL;
> > >
> > > use Apache::Constants qw(DECLINED);
> > >
> > > use strict;
> > >
> > > sub handler
> > > {
> > >         my $r   = shift;
> > >         my $uri = $r->uri;
> > >
> > >         return DECLINED if ($uri =~ m/^.+\.rhythm\.com$/)
> > 
> > IIRC, the $r->uri method is normally not going yield the hostname or
> > scheme (unless this is a proxy request).
> > 
> > So for a request to http://www.rhythm.com/test/myfile.html
> > 
> > $r->uri is going to return only
> > 
> > /test/myfile.html
> > 
> > You may want to do some logging to verify.
> > 
> > Add
> > 
> > use Apache::Log ();
> > 
> > then inside your handler...
> > 
> > my $log = $r->server->log;
> > 
> > $log->debug("Processing request " . $r->uri);
> > 
> > Hope that helps.
> > 
> > >
> > >         $uri    =~ s/^(.+)/$1\.rhythm\.com/;
> > >         $r->uri($uri);
> > >
> > >         return DECLINED;
> > > }
> > >
> > > 1;
> > >
> > > Here is my https.conf entry:
> > > PerlTransHandler MIS::GENERAL::FixURL
> > >
> > > And here is my error when I type: s7.rhythm.com
> > >
> > > Invalid URI in request GET / HTTP/1.0
> > >
> > > But I get no error with: http://s7/
> > >
> > > Can some one tell me what am I doing wrong?
> > >
> > > Thanks in advance
> > > -r
> 

Reply via email to