Login

SiteRedirectMiddleware

Author:
jezdez
Posted:
August 18, 2008
Language:
Python
Version:
.96
Tags:
middleware sites
Score:
1 (after 1 ratings)

Redirects to the default site (from Django's Sites contrib app), specified by the SITE_ID setting.

That's for example useful if you configured your webserver to handle multiple domains with the same virtual host and want to make sure every requests is then redirected to the right domain.

 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(),
        ))

More like this

  1. simple DomainsAliasMiddleware by matrix 6 years ago
  2. URL redirects middleware by gonz 7 years, 3 months ago
  3. PermanentRedirectMiddleware by marinho 6 years, 8 months ago
  4. Decorator to modify reverse() to render SSL urls by AndrewIngram 5 years, 11 months ago
  5. Configurable defaults for contrib.sites default Site during syncdb by chrischambers 3 years, 7 months ago

Comments

Please login first before commenting.