Django - 使用 www 重定向到版本
Posted
技术标签:
【中文标题】Django - 使用 www 重定向到版本【英文标题】:Django - redirect to version with www 【发布时间】:2011-10-24 00:06:56 【问题描述】:在 Django 中,是否有一种简单的方法可以将所有内容从没有 www 的域重定向到有它的版本?我的意思是从 http://example.com 到 http://www.example.com。
【问题讨论】:
【参考方案1】:我有。在设置中是 PREPEND_WWW。
https://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#prepend-www
【讨论】:
正如@adamp 在另一个回复中提到的那样,这实际上是非常 错误并且不是真的推荐,不幸的是:***.com/questions/41792064【参考方案2】:正如docs所说
如果 PREPEND_WWW 为 True,则缺少前导“www”的 URL。将被重定向到以“www”开头的相同 URL。
默认情况下,PREPEND_WWW
设置为 False
。您可以在设置中将其更改为 True。
PREPEND_WWW = True
要完成这项工作,您必须在中间件中包含 CommonMiddleware
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
)
【讨论】:
这最初看起来是一个很好的解决方案,但我很快发现了 PREPEND_WWW 的各种限制,并采用了服务器级别的解决方案。 ***.com/questions/41792064/… 这应该是公认的答案。如果你没有设置 CommonMiddleware 什么都不会发生。【参考方案3】:您也可以通过正确的 DNS 配置跳过前缀。
【讨论】:
以上是关于Django - 使用 www 重定向到版本的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 下将 domain.com 重定向到 WWW.domain.com?
Docker + Gunicorn + Nginx + Django:将非 www 重定向到 AWS Route 53 上的 www