perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ekki Plicht (DF4OR)" <e...@plicht.de>
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, <jniederberger@comcast.net> 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?
>

Joe,
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.
http://httpd.apache.org/docs/2.2/mod/core.html#directorymatch
http://httpd.apache.org/docs/2.2/mod/core.html#filesmatch

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

    PerlRequire /var/www/mysite/cgi-bin/my_modperl_module.pm

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

Cheers,
Ekki




>
>
>
>
>  *From:* Ekki Plicht (DF4OR) <ekki@plicht.de>
> *Sent:* Wednesday, August 08, 2012 2:23 PM
> *To:* mod_perl list <modperl@perl.apache.org>
> *Subject:* Re: Configuring mod-Perl to handle only some file types
>
>
>
> On Wed, Aug 8, 2012 at 8:13 PM, <jniederberger@comcast.net> 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
>
>
>

Mime
View raw message