summaryrefslogtreecommitdiff
path: root/flup/server/scgi_base.py
diff options
context:
space:
mode:
Diffstat (limited to 'flup/server/scgi_base.py')
-rw-r--r--flup/server/scgi_base.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/flup/server/scgi_base.py b/flup/server/scgi_base.py
index 0bcb652..8c70ffb 100644
--- a/flup/server/scgi_base.py
+++ b/flup/server/scgi_base.py
@@ -473,8 +473,11 @@ class BaseSCGIServer(object):
def _sanitizeEnv(self, environ):
"""Fill-in/deduce missing values in environ."""
# Ensure QUERY_STRING exists
- if not environ.has_key('QUERY_STRING'):
- environ['QUERY_STRING'] = ''
+ if not environ.has_key('QUERY_STRING') or not environ['QUERY_STRING']:
+ if environ.has_key('REQUEST_URI'):
+ environ['QUERY_STRING'] = environ['REQUEST_URI'].partition('?')[2]
+ else:
+ environ['QUERY_STRING'] = ''
# Check WSGI_SCRIPT_NAME
scriptName = environ.get('WSGI_SCRIPT_NAME')
@@ -495,8 +498,11 @@ class BaseSCGIServer(object):
# Pull SCRIPT_NAME/PATH_INFO from environment, with empty defaults
if not environ.has_key('SCRIPT_NAME'):
environ['SCRIPT_INFO'] = ''
- if not environ.has_key('PATH_INFO'):
- environ['PATH_INFO'] = ''
+ if not environ.has_key('PATH_INFO') or not environ['PATH_INFO']:
+ if environ.has_key('REQUEST_URI'):
+ environ['PATH_INFO'] = environ['REQUEST_URI'].partition('?')[0]
+ else:
+ environ['PATH_INFO'] = ''
else:
# Configured scriptName
warnings.warn('Configured SCRIPT_NAME is deprecated\n'