Problem with double slashes in urls with uwsgi and sockets

I have python app running under uwsgi with nginx. I’m using unix sockets
to
connect nginx to uwsgi. My python app is receiving single slashes in
urls
that originally had a double slash. For example, if the url is
http://localhost:3000/a//b , my program gets passed a path_info with a/b
instead of a//b.

My location definition looks like this:

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:///tmp/siteserver.socket;
        }

Your help greatly appreciated.

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,242823,242823#msg-242823

On Thu, Sep 12, 2013 at 04:53:36PM -0400, mpnally wrote:

Hi there,

I have python app running under uwsgi with nginx. I’m using unix sockets to
connect nginx to uwsgi. My python app is receiving single slashes in urls
that originally had a double slash. For example, if the url is
http://localhost:3000/a//b , my program gets passed a path_info with a/b
instead of a//b.

uwsgi_params (probably) contains the line

uwsgi_param PATH_INFO $document_uri;

$document_uri is described at
http://nginx.org/en/docs/http/ngx_http_core_module.html#variables

Following descriptions and links from there will bring you to the
merge_slashes directive.

http://nginx.org/r/merge_slashes

Set that to “off” if you want contiguous slashes in the request not to
become a single slash in this server{} bock.

f

Francis D. [email protected]

Thanks for excellent reply, Francis. I have not had time yet to try it,
but
this looks like it will solve my problem.

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,242823,242833#msg-242833