class RedirectMiddleware(object): def process_request(self, request): if request.is_ajax(): return None try: site = Site.objects.get_current() except: return None host = request.get_host() if host != site.domain: if host.endswith('.' + site.domain): subdomain = host.replace('.' + site.domain, '') if subdomain not in settings.DENIED_SUBDOMAINS: try: callback, callback_args, callback_kwargs = resolve(request.path, settings.SUBDOMAINS_ROOT_URLCONF) except: return HttpResponseRedirect('http://' + site.domain + request.path) else: callback_kwargs.update({'user': subdomain}) return callback(request, *callback_args, **callback_kwargs) return HttpResponseRedirect('http://' + site.domain + request.path)