On Thu, 7 Dec 2006, Matthew Lineen wrote:
> I have the following dhandler issue with mason/mod_perl/apache v1.3:
>
> On disk, I have the following files...
>
> /home/me/inherit/one/index.html
> /home/me/inherit/one/test/dhandler
> /home/me/inherit/one/test/override  <-- this is a file not a dir
>
> When I access "http://localhost/me/inherit/test/override/foo";, why do I
> see the contents of the "override" file?  I would expect that the
> dhandler *should* be serving this!

Because override is a file which exists, dhandler is not called.  Instead,
override is called, and the rest of the url path is in the PATH_INFO env
variable.  This is a useful effect sometimes.

> Then, if I call $m->decline() in the override file, why is
> $m->dhandler_arg() = 'override'?  I would expect that it should be
> 'override/foo'!

"/foo" is still in PATH_INFO.  You could try doing:

  my $extra_path = $m->dhandler_arg().$ENV{PATH_INFO};

> Alias   /me/inherit    /home/me/inherit/one
> <Directory              /home/me/inherit/one>

Apache is involved in the PATH_INFO stuff.  If you really don't want that
to ever happen, you could try using a <Location> configuration in your
httpd.conf.  That happens before apache looks at the files, so it might
prevent the PATH_INFO thing from happening, but I have not rigorously
tested it.

~ John Williams



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to