我应该在 Django 的站点框架中使用 FQDN 作为 "domain" 吗?

Should I use the FQDN as the "domain" in Django's sites framework?

我有一个网站,任何对非 www 域的请求,即 http://example.com 都被服务器重定向(状态 301)到 http://www.example.com

如果我使用 Django 的 sites 框架,我应该将 domain 设置为 example.com 还是 www.example.com ?我看到的所有文档总是将域称为 example.com。如果站点框架将域引用为 full qualified domain name 或只是 domain name,我感到很困惑。 Django 文档将域定义为 "The domain name associated with the Web site"。这让我觉得它应该没有 www 部分。但这会破坏站点地图(Django 生成所有不带 www 的 URL)。

PREPEND_WWW 设置是造成混淆的另一个原因。看起来好像 Django 希望您只将域定义为 example.com,然后使用此设置来添加 www.

它应该是 www.example.com,因为这是您网站的规范 url。 Django 在其他事物中使用域来构造完全限定的 URL,您会希望它们指向 www.example.com

PREPEND_WWW 是设置为 return 如果用户访问 example.com 而不是 www.example.com 则重定向。听起来您的网络服务器中已经涵盖了这一点。它不会以任何其他方式影响域。

如今许多站点不使用 www(例如 www.whosebug.com 重定向到 whosebug.com),这是文档经常使用 example.com 的唯一原因。