durusmail: quixote-users: SCGI + Quixote, Location / ?
SCGI + Quixote, Location / ?
2005-08-10
2005-08-10
2005-08-10
2005-08-10
2005-08-10
2005-08-10
2005-08-10
2005-08-10
2005-08-10
2005-08-11
2005-08-11
2005-08-11
2005-08-11
2005-08-11
2005-08-11
2005-08-11
2005-08-11
2005-08-11
2005-08-12
2005-08-11
2005-08-11
2005-08-11
2005-08-11
2005-08-11
2005-08-11
RELEASED: scgi-1.6
2005-08-11
2005-08-11
SCGI + Quixote, Location / ?
Neil Schemenauer
2005-08-11
On Wed, Aug 10, 2005 at 08:06:59PM -0700, Mike Orr wrote:
> 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.

[...]

> I think mod_scgi doesn't set PATH_INFO, but I haven't checked it
> specifically.  I can check it tomorrow if necessary.


Unfortunately I have no time to read and understand this whole
thread.  Hopefully I'm not too far off base:

    * If you use mod_scgi and the SCGIServer command (i.e. in
      combination with Location or LocationMatch) then PATH_INFO
      while always be empty and SCRIPT_NAME will contain the whole
      path.  In that case you can use the --script-name argument to
      the Quixote scgi server to specify the script name.

    * With scgi 1.6 (1.5 has a bug so 1.6 will be released
      directly), you can use the SCGIMount directive.  If you use it
      then SCRIPT_NAME and PATH_INFO will be set as expected.  This
      is the prefered way of using mod_scgi now and the
      --script-name option becomes unnecessary.

For your specific problem, if you have:

    SCGIMount /rl localhost:3000

then the URI /rl/ will result in SCRIPT_NAME="/rl" and PATH_INFO="/".
If the URI is /rl then SCRIPT_NAME="/rl" and PATH_INFO="".  That
will trigger the following assertion in Quixote:

Traceback (most recent call last):
  File "/home/nas/lib/python/quixote/publish.py", line 273, in process_request
    output = self.try_publish(request)
  File "/home/nas/lib/python/quixote/publish.py", line 248, in try_publish
    assert path[:1] == '/'
AssertionError

I think we could change Quixote to do a redirect (just like in other
cases when a trailing slash is missing) instead of raising an error.

  Neil
reply