I have a django app that works fine using http. We have a requirement to
serve the entire site using https, which is being done at the proxy level
- so the Apache that my django is running inside (mod_wsgi) doesn't know
about the https.
I have a problem with using HttpResponseRedirect - the redirect is
changing the URL to be http. Everything else about the URL is right.
How do I fix this, and have the redirect go to https?
Thanks,
Tim.
I use middleware to update the request to think it came in over https.
This is an extremely cut down version of what we use, but if _every_
request is SSL it should work fine (not all our requests are SSL, and
not every view requires SSL, so ours is a lot more complex in deciding
whether to monkey patch).
class SSLMiddleware(object):
def process_request(self, request):
# request.is_secure() looks in os.environ to see whether request is SSL
# Unfortunately, once you look in os.environ, you can't change it...
# Therefore, we have to monkey patch that function, we know this is SSL
request.is_secure = lambda: True
Cheers
Tom