[EP-tech] Adding a custom PerlResponseHandler

John Salter J.Salter at leeds.ac.uk
Wed Nov 14 14:21:26 GMT 2012


Hi,
I'm trying to work out the best way to add a custom handler for a URL to a specific archive within eprints.

I can either set something like this in the vhost (and add '/foo/' to $c->{rewrite_exceptions} ):
<Location "/foo/handler">
    SetHandler perl-script
    PerlResponseHandler Foo::FooHandler
</Location>

 - OR - 
I could edit ~/perl_lib/EPrints/Apache/Rewrite.pm, adding something like:
if ( $uri =~ m! ^$urlpath/foo !x )
{
  $r->handler( 'perl-script' );
  $r->set_handlers( PerlResponseHandler => [ 'Foo::FooHandler' ] );
  return OK;
}

BUT I wouldn't /really/ want to do that, as it would affect all archives, not just the one I want it to.

So, what is the *most* sensible way to do this, making it apply to only one archive? Am I missing some magic that will help me?

Cheers,
John



More information about the Eprints-tech mailing list