Fixed #7871 -- Added some more bullet-proofing in PATH_INFO determination,
since Django would like it to at least contain a '/' (rather than being an empty string). git-svn-id: http://code.djangoproject.com/svn/django/trunk@8032 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
1ef86fdf2b
commit
c236874c48
|
@ -31,6 +31,11 @@ class ModPythonRequest(http.HttpRequest):
|
|||
self.path_info = force_unicode(req.uri[len(root):])
|
||||
else:
|
||||
self.path_info = self.path
|
||||
if not self.path_info:
|
||||
# Django prefers empty paths to be '/', rather than '', to give us
|
||||
# a common start character for URL patterns. So this is a little
|
||||
# naughty, but also pretty harmless.
|
||||
self.path_info = u'/'
|
||||
|
||||
def __repr__(self):
|
||||
# Since this is called as part of error handling, we need to be very
|
||||
|
|
|
@ -76,7 +76,13 @@ def safe_copyfileobj(fsrc, fdst, length=16*1024, size=0):
|
|||
class WSGIRequest(http.HttpRequest):
|
||||
def __init__(self, environ):
|
||||
script_name = base.get_script_name(environ)
|
||||
path_info = force_unicode(environ.get('PATH_INFO', '/'))
|
||||
path_info = force_unicode(environ.get('PATH_INFO', u'/'))
|
||||
if not path_info:
|
||||
# Sometimes PATH_INFO exists, but is empty (e.g. accessing
|
||||
# the SCRIPT_NAME URL without a trailing slash). We really need to
|
||||
# operate as if they'd requested '/'. Not amazingly nice to force
|
||||
# the path like this, but should be harmless.
|
||||
path_info = u'/'
|
||||
self.environ = environ
|
||||
self.path_info = path_info
|
||||
self.path = '%s%s' % (script_name, path_info)
|
||||
|
|
Loading…
Reference in New Issue