perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ekki Plicht (DF4OR)" <>
Subject Re: Configuring mod-Perl to handle only some file types
Date Wed, 08 Aug 2012 19:48:57 GMT
On Wed, Aug 8, 2012 at 9:30 PM, <> wrote:

>   Thank you – both Kevin and Ekki
> For my purposes I think Ekki’s idea sounds more like it could work.
> Ekki – would you know how to phrase that match in the negative?
> In other words, write a regex to match .jpeg, .doc, ....etc. etc.
> and if those matches FAIL - then use perl handler?

I don't think that that approach will work in the long term. What if
someone wants to serve a file *.xyz in the future? You would have to
adjust  that regex. And again, and again...

I think it would be much easier to set up <DirectoryMatch 'regex'> and
<FilesMatch 'regex'> sections for what you want to serve by your
handler(s), and let Apache handle _all_ other files/dirs.

Filter on what is the smaller set - and I think that's your dirs and .html
files. All other files not mentioned in those <*Match ...> sections are
automatically handled by Apache. Further - a regex matching all those files
you don't want to handle yourself would be rather lengthy and unwieldy.

Take a look at Apaches fine documentation, look for <DirectoryMatch ...>
and <FilesMatch ...> directives.

For example, a <FilesMatch ...> for . htm or .html Files would look like

    PerlRequire /var/www/mysite/cgi-bin/

    <FilesMatch "\.html?$">
        SetHandler perl-script
        PerlResponseHandler my_modperl_module   # which contains a sub
handler {...};


>  *From:* Ekki Plicht (DF4OR) <>
> *Sent:* Wednesday, August 08, 2012 2:23 PM
> *To:* mod_perl list <>
> *Subject:* Re: Configuring mod-Perl to handle only some file types
> On Wed, Aug 8, 2012 at 8:13 PM, <> wrote:
>> Hello,
>> I have a mod_perl program that is written to handle URL's that
>> name either a directory or *.html type files. All other types
>> I want Apache to just do its regular thing (e.g., serve image
>> type files, or .doc, .pdf, .js, .css, etc.)
>> What's a good way to configure that? So for an entire website directory,
>> and all its substructure, my perl handler gets only directories
>> or  *.html files, and apache handles everything else without
>> involing my perl handler.
> I just used a <FilesMatch> section in httpd.conf. Like so:
>         <FilesMatch "\.(tx|html\...)$">
>                 SetHandler perl-script
>                 PerlResponseHandler TxShow
>         </FilesMatch>
> This match expression filters out any files that either end in .html.?? or
> .tx.??, the two ?? being language extensions used for auto negotiation.
> You can build nearly any kind of Regex there to filter out what you want
> handled by your mod_perl script and what should be handled by Apache
> directly.
> Cheers,
> Ekki

View raw message