SiteRedirectMiddleware

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from django.contrib.sites.models import Site
from django.http import HttpResponsePermanentRedirect
from django.conf import settings

class SiteRedirectMiddleware(object):
    def process_request(self, request):
        host = request.get_host()
        site = Site.objects.get_current()

        if site.domain in host:
            return None
        return HttpResponsePermanentRedirect('%s://%s%s' % (
                request.is_secure() and 'https' or 'http',
                site.domain,
                request.get_full_path(),
        ))

Comments

(Forgotten your password?)

You may use Markdown syntax here, but raw HTML will be removed.