On Mar 11, 2015, at 9:59 AM, David E. Wheeler <da...@justatheory.com> wrote:

>      # Set the filename.                                                      
>             
>      my $file = File::Spec->catfile($sub_root, substr $r->uri, 1);
>      $r->filename($file);
>      $r->finfo(APR::Finfo::stat($file, APR::Const::FINFO_NORM, $r->pool));
>      return DECLINED;
> }
> 
> I have no PerlReponseHandler, so Apache handles the response…and returns 404. 
> Note that a request for /hi.txt; it’s only a request in a subdirectory, 
> /foo/bar.html, that fails. Why? Why isn’t Apache able to find that file? Is 
> there some other attribute of $r I need to set or unset?

Turns out I was able to fix this issue by unsetting path_info. I just added

    $r->path_info(undef);

To the above code, and now Apache can find the file.

I do not understand the relationship between filename (which is often not the 
full path to a file) and path_info. Fortunately, it looks like I don’t have to. 
But we might want to consider updating the docs to recommend unsetting 
path_info when setting the full path to a file in filename.

Best,

David

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to