1 | from django.conf import settings |
---|
2 | from django.contrib.sites.models import Site |
---|
3 | |
---|
4 | class SubdomainURLsMiddleware: |
---|
5 | """ change the URL conf based on the subdomain in the request """ |
---|
6 | |
---|
7 | def process_request(self, request): |
---|
8 | # strip out the 'www.' non web-savvy users often type 'www' in |
---|
9 | # front of every website they visit. |
---|
10 | domain = Site.objects.get_current().domain |
---|
11 | subdomain = request.META['HTTP_HOST'].replace(domain, '').replace('.', '').replace('www', '') |
---|
12 | try: |
---|
13 | #you'll have to define a map of subdomains -> urlconfs in your settings |
---|
14 | if subdomain in settings.DOMAINS_URLCONF: |
---|
15 | request.__setattr__('urlconf', |
---|
16 | settings.DOMAINS_URLCONF[subdomain]) |
---|
17 | except: {} |
---|
18 | return None |
---|