Django相对网址与https

1 投票
5 回答
2259 浏览
提问于 2025-04-16 06:51

我有一个Django项目,某些网址部分使用https,比如/account/、/admin/和/purchase/。

当我在这些https页面上时,所有的内部链接{% url foo %}都会指向https://my_url

但是我不想让这些页面显示为https,比如首页、联系方式等。

对于这种需求,有什么解决办法呢?

强制使用绝对网址吗?

 http://{{ domain }}{% url foo %} 

这样做不是很好。

5 个回答

2

你可以让你的网页服务器把请求改成http格式,这样Django就不需要知道这些事情了。

4

想法:你可以使用自定义的中间件来把某些网址或者网址模式从https重定向到http(或者反过来)。这也可以在Apache(或者其他网络服务器)配置中完成。

4

正如Tomasz所建议的,一种方法是设置中间件来根据需要在https和http之间进行重定向。这里有一个实现示例——这个想法是给那些应该在https下提供的视图加上装饰器,当用户从一个安全的视图导航到一个不需要安全的视图时,中间件会自动把他们重定向回http版本的页面。

撰写回答