对于John C的答案的第二部分,以及Django 1.4 + …
你可以将更
request.scheme改为,而不是扩展HttpResponseRedirect
https。因为Django在Nginx的反向代理后面,所以它不知道原始请求是安全的。
在你的Django设置中,设置SECURE_PROXY_SSL_HEADER设置:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
然后,你需要Nginx在反向代理中设置自定义标头。在Nginx网站设置中:
location / { # ... proxy_set_header X-Forwarded-Proto $scheme;}
这样request.scheme == ‘https’并request.is_secure()返回True。 request.build_absolute_uri()返回https://…等等
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)