diff -r ec46415ed826 -r 69b2d0900cd7 mercurial/hgweb/hgweb_mod.py --- a/mercurial/hgweb/hgweb_mod.py Thu Mar 08 15:14:32 2018 -0800 +++ b/mercurial/hgweb/hgweb_mod.py Sat Mar 10 10:20:51 2018 -0800 @@ -316,6 +316,7 @@ yield r def _runwsgi(self, wsgireq, repo): + req = requestmod.parserequestfromenv(wsgireq.env) rctx = requestcontext(self, repo) # This state is global across all threads. @@ -329,14 +330,7 @@ if h[0] != 'Content-Security-Policy'] wsgireq.headers.append(('Content-Security-Policy', rctx.csp)) - # work with CGI variables to create coherent structure - # use SCRIPT_NAME, PATH_INFO and QUERY_STRING as well as our REPO_NAME - - wsgireq.url = wsgireq.env[r'SCRIPT_NAME'] - if not wsgireq.url.endswith(r'/'): - wsgireq.url += r'/' - if wsgireq.env.get('REPO_NAME'): - wsgireq.url += wsgireq.env[r'REPO_NAME'] + r'/' + wsgireq.url = pycompat.sysstr(req.apppath) if r'PATH_INFO' in wsgireq.env: parts = wsgireq.env[r'PATH_INFO'].strip(r'/').split(r'/')