ekki at plicht
Aug 8, 2012, 12:48 PM
Post #5 of 5
On Wed, Aug 8, 2012 at 9:30 PM, <jniederberger [at] comcast> wrote:
Re: Configuring mod-Perl to handle only some file types
[In reply to]
> 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
PerlResponseHandler my_modperl_module # which contains a sub
> *From:* Ekki Plicht (DF4OR) <ekki [at] plicht>
> *Sent:* Wednesday, August 08, 2012 2:23 PM
> *To:* mod_perl list <modperl [at] perl>
> *Subject:* Re: Configuring mod-Perl to handle only some file types
> On Wed, Aug 8, 2012 at 8:13 PM, <jniederberger [at] comcast> wrote:
>> 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
> 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