[mod_python] Apache directory listing

Graham Dumpleton graham.dumpleton at gmail.com
Mon May 28 16:56:57 EDT 2007


If a phase earlier than response handler phase is providing the
complete response, it should return apache.DONE and not apache.OK.
This will stop later phases running.

Graham

On 28/05/07, Aaron Gallagher <habnabit at gmail.com> wrote:
> I've just moved a lot of my code (including the code that checks to
> see if a directory should have its contents listed) from a
> PythonHandler into a PythonHeaderParserHandler, because after looking
> at the response loop, I determined that PythonFixupHandler was
> happening too late in the process.
>
> It's created some interesting new problems -- my calls to
> req.internal_redirect aren't working, as the code was set up like this:
> req.internal_redirect(...)
> return apache.OK
> I guess this isn't stopping the request, like it used to do. How
> should I change my code to allow internal redirects?
>
> Also, all of your suggestions just act the same way as if I had just
> done return apache.OK.
>
>
> On May 28, 2007, at 4:22 AM, Graham Dumpleton wrote:
>
> > On 28/05/07, Aaron Gallagher <habnabit at gmail.com> wrote:
> >> Okay, I'll try that.
> >>
> >> But, what exactly is the purpose of a PythonFixupHandler? The
> >> documentation doesn't have much to say, but I assume it's for doing
> >> URL rewriting and redirection.
> >
> > Potentially. It is one of a number of phases and is a sort of catch
> > all or last chance phase before actual response handler is executed.
> > For a very technical description of the whole Apache request-response
> > loop see:
> >
> >  http://www.fmc-modeling.org/projects/apache/html/
> > 4_4Request_Response_Loop.html
> >
> > If you really want to understand how Apache works, that whole document
> > is quite a good read, albeit probably more in depth than most people
> > would care for.
> >
> > Graham
> >
> >> On May 28, 2007, at 3:44 AM, Graham Dumpleton wrote:
> >>
> >> > Arrgghh, mistook mime type for handler.
> >> >
> >> > Trying again, although not sure this will work, but might be able
> >> > to say:
> >> >
> >> >  req.handler = "httpd/unix-directory"
> >> >  return apache.DECLINED
> >> >
> >> > The reason this might not work is that mod_python registers
> >> itself as
> >> > a middle handler as does the autoindex module. Because the
> >> autoindex
> >> > module is inbuilt, it probably gets processed prior to mod_python
> >> > handler so too late to do the above.
> >> >
> >> > Thus, your only choice would be to provide a fixuphandler which
> >> undoes
> >> > the SetHandler just for the request against the directory and
> >> triggers
> >> > autoindex instead. Ie.,
> >> >
> >> >  def fixuphandler(req):
> >> >    if req.content_type = "httpd/x-directory":
> >> >      req.handler = "httpd/unix-directory"
> >> >    return apache.OK
> >> >
> >> > Enable this using appropriate PythonFixupHandler directive.
> >> >
> >> > Graham
> >> >
> >> > On 28/05/07, Aaron Gallagher <habnabit at gmail.com> wrote:
> >> >> I get a 404 Not Found error.
> >> >>
> >> >> On May 28, 2007, at 3:22 AM, Graham Dumpleton wrote:
> >> >>
> >> >> > What happens if you return apache.DECLINED.
> >> >> >
> >> >> > Graham
> >> >> >
> >> >> > On 28/05/07, Aaron Gallagher <habnabit at gmail.com> wrote:
> >> >> >>
> >> >> >> Is there a way to tell Apache to give a directory listing? I'm
> >> >> using
> >> >> >> SetHandler on a directory, and in some cases, I don't need
> >> to do
> >> >> >> any special
> >> >> >> handling, so I'd like Apache to just list the contents of the
> >> >> >> directory so
> >> >> >> that I don't have to write my own way of doing it.
> >> >> >>
> >> >> >> Just returning apache.OK has Apache send a document of MIME
> >> time
> >> >> >> httpd/x-directory with content length 0.
> >> >> >>
> >> >> >> Aaron Gallagher
> >> >> >> <habnabit at gmail.com>
> >> >> >>
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> Mod_python mailing list
> >> >> >> Mod_python at modpython.org
> >> >> >> http://mailman.modpython.org/mailman/listinfo/mod_python
> >> >> >>
> >> >> >>
> >> >>
> >> >> Aaron Gallagher
> >> >> <habnabit at gmail.com>
> >> >>
> >> >>
> >> >>
> >>
> >> Aaron Gallagher
> >> <habnabit at gmail.com>
> >>
> >>
> >>
>
> Aaron Gallagher
> <habnabit at gmail.com>
>
>
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
>


More information about the Mod_python mailing list