我有一个网站,其中任何对非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 docs将domain定义为"与网站相关的域名"。这让我觉得应该没有www部分。但这打破了站点地图(Django生成没有www的所有URL)。
PREPEND_WWW
设置是造成混淆的另一个原因。似乎Django希望您只将域定义为example.com
,然后使用此设置添加www
。
答案 0 :(得分:2)
应该是www.example.com
,因为这是您网站的规范网址。 Django使用域名来构建完全限定的URL,并且您希望这些URL指向www.example.com
。
PREPEND_WWW
是一项设置,用于在用户访问example.com
而不是www.example.com
时返回重定向。听起来你的网络服务器已经覆盖了这个。它不会以任何其他方式影响域。
现在很多网站都没有使用www
(例如www.stackoverflow.com重定向到stackoverflow.com),这是文档经常使用example.com
的唯一原因。