Opened 10 years ago
Last modified 10 years ago
#25878 closed Bug
Django 1.9 works well in Debug=True, but doesn't redirect unslash urls into slashed one in Debug=False — at Version 2
| Reported by: | dong-won kang | Owned by: | nobody |
|---|---|---|---|
| Component: | HTTP handling | Version: | 1.9 |
| Severity: | Release blocker | Keywords: | slash, debug |
| Cc: | Jay Cox | Triage Stage: | Accepted |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I first uploaded it to google groups but I don't find where's my article is (I'm not get used to it) so I decided to make a ticket here.
as I mentioned in title, django 1.9's url slash redirection doesn't working well in debug=False. APPEND_SLASH was no effect. but in debug=True, it does well, and only these 'cached(loaded in debug mode)' url redirects well even in debug=False. (I don't know it's browser redirection or django's work ...)
anyway, I fixed django/middleware/common.py like this and works well. original code was rather a little strange, as I thought.
def process_request(self, request):
"""
Check for denied User-Agents and rewrite the URL based on
settings.APPEND_SLASH and settings.PREPEND_WWW
"""
# Check for denied User-Agents
if 'HTTP_USER_AGENT' in request.META:
for user_agent_regex in settings.DISALLOWED_USER_AGENTS:
if user_agent_regex.search(request.META['HTTP_USER_AGENT']):
raise PermissionDenied('Forbidden user agent')
# Check for a redirect based on settings.PREPEND_WWW
host = request.get_host()
redirect = False
if settings.PREPEND_WWW and host and not host.startswith('www.'):
host = 'www.' + host
redirect = True
# Check if we also need to append a slash so we can do it all
# with a single redirect.
if self.should_redirect_with_slash(request):
path = self.get_full_path_with_slash(request)
redirect = True
else:
path = request.get_full_path()
if (redirect):
return self.response_redirect_class('%s://%s%s' % (request.scheme, host, path))
Hope this issue can be meaningful.
thanks for reading
PS changed a little - previous code won't work with prepending WWW
Change History (2)
comment:1 by , 10 years ago
| Type: | Uncategorized → Bug |
|---|
comment:2 by , 10 years ago
| Description: | modified (diff) |
|---|