我一直在使用HTTPS的网址(/帐号/,/管理/,/采购/)的某些部分Django项目。
当这个页面在HTTPS模式之一,所有相关的内链接{%URL FOO%}将指向https://开头my_url 。
不过,我不希望有显示为HTTPS这些页面:主页,联系人...
什么是这种需求解决方案?
强制绝对URL?
http://{{ domain }}{% url foo %}
是不是太漂亮。
我一直在使用HTTPS的网址(/帐号/,/管理/,/采购/)的某些部分Django项目。
当这个页面在HTTPS模式之一,所有相关的内链接{%URL FOO%}将指向https://开头my_url 。
不过,我不希望有显示为HTTPS这些页面:主页,联系人...
什么是这种需求解决方案?
强制绝对URL?
http://{{ domain }}{% url foo %}
是不是太漂亮。
正如托马斯指出,一个办法做到这一点是建立中间件重定向到和HTTPS作为必要的。 下面是一个实现 -这个想法是装饰应在HTTPS来服务这些观点,而当用户导航到不应该从一个就是安全视图,中间件将它们导向它会自动回到页面的HTTP版本。
点子:您可以使用自定义的中间件从HTTPS重定向到HTTP(反之亦然)的centrain网址或网址格式。 这也可以在Apache中(或其他Web服务器)配置来完成。
可以使用你的网络服务器改写为http,这样的Django甚至不需要知道。
我觉得这个片段需要照顾的情况很好。 需要SSL将有他们的看法,通过从HTTP重定向到HTTPS版本的url,反之亦然。
是的,一个HTTPS页面上,出站链接到你的网站的非HTTPS网页将仍然以https开头,但用户将被重定向到的HTTP版本。
(有一种疑难杂症,但是:如果你从HTTP发布到HTTPS,反之亦然它不会工作)
这也许能为您服务
http://code.djangoproject.com/wiki/ContributedMiddleware#SSLMiddlewarebyStephenZabel
的贡献SSL中间件