我正在将ssl添加到django应用程序中,并且遇到了一些问题,我的链接从https重定向到http。
最终我会让nginx将所有http请求重定向到https,但是现在我允许这两个。
所以如果你去https://www.mysite.com一切都很好。但是,点击“关于链接”:href ='/ about'会将您重定向到http://www.mysite.com/about。
关于是超级基本(静态)页面。这是urls.py中的条目:
(r'^about/$', 'search.views.about'),
这是视图功能:
def about(request):
return render_to_response('search/about.html')
不应该将我的用户定向到https://www.mysite.com/about/吗?我相信这与request.is_secure()方法有关。这总是对我来说是假的。我已经读过我需要设置os.environ ['HTTPS'] =“on”才能返回true。我该怎么做呢?我还需要做些什么吗?我应该将https硬编码到我的所有链接中吗?
感谢您的帮助。
答案 0 :(得分:0)
原来我使用的nginx代码搞砸了一切。而不是:
if ($http_x_forwarded_port != 443) { rewrite ^ https://$http_host/; }
使用:
if ($http_x_forwarded_port != 443) { rewrite ^(.*) https://$host$1 permanent;
进行重定向。因为第一个除了主人之外都会丢掉所有东西。