David Binger wrote:
On Aug 10, 2005, at 7:20 PM, [EMAIL PROTECTED] wrote:
Actually it would have to be like this:
# In publish.Publisher.try_publish()
path = request.get_environ('PATH_INFO', '')
if not path:
return redirect(request.get_environ('SCRIPT_NAME')+'/',
True)
Tested on Apache 2.0.52, scgi 1.4, Quixote 2.1.
I think the case in question puts the entire path in the SCRIPT_NAME
on every request. Under those conditions, the strategy you suggest
can't work since the PATH_INFO would still be empty after a redirect.
Does your test push requests through this redirect?
I don't understand the question. I go to /rl, it redirects to /rl/,
which in my app redirects to /rl/login because the user isn't logged
in. If I type /rl/, it redirects to /rl/login, and the page shows
properly, with stylesheet and logo which are StaticFile's.
Is mod_scgi's behavior different from what I am assuming?
From mod_scgi.c (SCGI 1.5):
if (r->path_info) {
int path_info_start = find_path_info(r->uri, r->path_info);
add_header(t, "SCRIPT_NAME", apr_pstrndup(r->pool, r->uri,
path_info_start));
add_header(t, "PATH_INFO", r->path_info);
}
else {
/* skip PATH_INFO, don't know it */
add_header(t, "SCRIPT_NAME", r->uri);
}
So it tries to handle either case.
From quixote.scgi_server.QuixoteHandler.handle_connection():
if self.script_name is not None:
# mod_scgi doesn't know SCRIPT_NAME :-(
prefix = self.script_name
path = env['SCRIPT_NAME']
assert path[:len(prefix)] == prefix, (
"path %r doesn't start with script_name %r" % (path,
prefix))
env['SCRIPT_NAME'] = prefix
env['PATH_INFO'] = path[len(prefix):] + env.get('PATH_INFO', '')
This looks like it tries to find either case too. I didn't look at what
SCRIPT_NAME and PATH_INFO were before this mangling.
Either there's one problem or two. The
missing-trailing-slash-for-home-page problem is happening in any case.
That's what the original poster mentioned I thought, and it also happens
to me. If PATH_INFO is always blank and .handle_connection() doesn't
fix it, Quixote wouldn't work at all. That would be a separate
problem. I think mod_scgi doesn't set PATH_INFO, but I haven't checked
it specifically. I can check it tomorrow if necessary.
-- Mike Orr <[EMAIL PROTECTED]>
_______________________________________________
Quixote-users mailing list
Quixote-users@mems-exchange.org
http://mail.mems-exchange.org/mailman/listinfo/quixote-users