当请求为ssl时,Heroku将HTTP_X_FORWARDED_PROTO设置为https,我们可以使用它来检查:
from django.conf import settingsfrom django.http import HttpResponseRedirectclass SSLMiddleware(object): def process_request(self, request): if not any([settings.DEBUG, request.is_secure(), request.meta.get("HTTP_X_FORWARDED_PROTO", "") == 'https']): url = request.build_absolute_uri(request.get_full_path()) secure_url = url.replace("http://", "https://") return HttpResponseRedirect(secure_url)


