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

448 views Asked by At

I have a website where any request to the non-www domain i.e. http://example.com is redirected (with status 301) to http://www.example.com by the server.

If I'm using Django's sites framework, should I set the domain as example.com or www.example.com ? All the documents that I've seen always refer to domain as example.com. I'm confused if the sites framework refers to domain as the full qualified domain name or just the domain name. Django docs define domain as "The domain name associated with the Web site". This makes me think it should be without the www part. But this breaks the sitemap (Django generates all URLs without www).

The PREPEND_WWW settings is another reason for the confusion. It appears as if Django wants you to just define the domain as example.com and then use this setting to prepend www.

1

There are 1 answers

1
knbk On BEST ANSWER

It should be www.example.com, as that is the canonical url of your site. Django uses the domain amongst other things to construct fully qualified URL's, and you'll want these to point to www.example.com.

PREPEND_WWW is a setting to return a redirect if the user visits example.com instead of www.example.com. It sounds like you got this covered in your webserver. It doesn't affect the domain in any other way.

Many sites don't use www nowadays (e.g. www.stackoverflow.com redirects to stackoverflow.com), that's the only reason why the documentation often uses example.com.