Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ModPerl: ModPerl

Re: rewriterule, location, and perlhandler [resolved]

 

 

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded


eric_morgan at infomotions

Jul 21, 2009, 6:50 PM

Post #1 of 1 (509 views)
Permalink
Re: rewriterule, location, and perlhandler [resolved]

On Jul 21, 2009, at 9:32 PM, Eric Lease Morgan wrote:

> How do I get Apache's RewriteRule, Location, and PerlHander to work
> nicely together?...
>
> I now want to implement a RewriteRule -- a la a "cool" linked data
> URL -- to redirect URLs with a specific shape to SemanticWeb.pm, and
> I use the following:
>
> RewriteRule ^/etexts/id/(.*) /sandbox/semantic-web.cgi?id=$1
>
> In other words, all request starting with /etexts/id should be
> redirected (rewritten) to go to semantic-web.cgi. Unfortunately, all
> requests go directly to the touched file and not to my Perl package;
> the Location directive seems by-passed....


Resolved. Alas, I needed to add [passthrough] to my RewriteRule
configuration:

RewriteRule ^/etexts/id/(.*) /sandbox/semantic-web.cgi?id=$1
[passthrough]

From the mod_rewrite documentation:

* 'passthrough|PT' (pass through to next handler)

This flag forces the rewrite engine to set the uri field of the
internal request_rec structure to the value of the filename
field. This flag is just a hack to enable post-processing of the
output of RewriteRule directives, using Alias, ScriptAlias,
Redirect, and other directives from various URI-to-filename
translators. For example, to rewrite /abc to /def using
mod_rewrite, and then /def to /ghi using mod_alias:

RewriteRule ^/abc(.*) /def$1 [PT]
Alias /def /ghi

If you omit the PT flag, mod_rewrite will rewrite uri=/abc/... to
filename=/def/... as a full API-compliant URI-to-filename
translator should do. Then mod_alias will try to do a
URI-to-filename transition, which will fail. Note: You must use
this flag if you want to mix directives from different modules
which allow URL-to-filename translators. The typical example is
the use of mod_alias and mod_rewrite.

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html


I sincerely apologize for wasting people's time and bandwidth.

--
Eric Lease Morgan

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.