from django.conf import settings
from django.http import HttpResponseRedirect
from django.contrib.sites.models import Site
class DomainsAliasMiddleware:
'''
Redirect to Site 'domain' if target domain found in DOMAINS_ALIAS
'''
def process_request(self, request):
target_domain = request.META.get("HTTP_HOST", "localhost")
if hasattr(settings, 'DOMAINS_ALIAS'):
for domain in settings.DOMAINS_ALIAS:
if domain == target_domain:
return self._redirect(request)
return None
def _redirect(self, request):
if request.path == "": request.path = "/"
newurl = "%s://%s%s" % (request.is_secure() and 'https' or 'http', \
Site.objects.get_current().domain, request.path)
if request.GET:
newurl += '?' + request.GET.urlencode()
return HttpResponseRedirect(newurl)
Comments