[Web-SIG] wsgiorg.routing_args and original SCRIPT_NAME

Manlio Perillo manlio_perillo at libero.it
Thu Jan 24 15:22:21 CET 2008


Hi.

I have implemented the wsgiorg.routing_args specification, using the 
code in the example.

However I have a problem, and I can't see a good solution.

Suppose that an application is mounted (embedded in a web server) at 
location "/example".

The application script executed by the server simply setups the 
routings, database connections and so.

Let's suppose that the request uri is "/example/login/".

For the main application, SCRIPT_NAME is "/example".
For the application at "/login", SCRIPT_NAME is "/example/login".


My problem is that I want, in the page generated by "login" application, 
return an anchor in the form "/example/logout/".

The usual solution is to do environ['SCRIPT_NAME'] + '/logout', but this 
will return "/example/login/logout/", and not "/example/logout/".

This seems to be not possible with the current specifications, since the 
"original" SCRIPT_NAME is lost.

What is the best solution?

1) Do not change SCRIPT_NAME, and instead add a wsgiorg.consumed_path, a
    list.

    This means that the request uri recostruction must be changed:
    SCRIPT_NAME = SCRIPT_NAME + '/'.join(wsgiorg.consumed_path)

2) Store a wsgiorg.original_script_name, with the value seen by the
    routing application.

3) Simply don't change SCRIPT_NAME and PATH_INFO.
    However I usually need the updated PATH_INFO.



Thanks  Manlio Perillo


More information about the Web-SIG mailing list