def process_request(self, request):
host = self.get_host(request)
domain, port = split_domain_port(host)
if not domain:
raise DisallowedHost(f'Invalid HTTP_HOST header: {host}.')
request.host = domain
request.port = int(port) if port else None
event_slug = resolve(request.path).kwargs.get('event')
if event_slug:
event = get_object_or_404(Event, slug__iexact=event_slug)
request.event = event
if event.settings.custom_domain:
custom_domain = urlparse(event.settings.custom_domain)
event_domain, event_port = split_domain_port(custom_domain.netloc)
if event_domain == domain and event_port == port:
request.uses_custom_domain = True
return
else:
request.needs_redirect = True
return redirect(urljoin(event.settings.custom_domain, request.path))
default_domain, default_port = split_domain_port(settings.SITE_NETLOC)
if domain == default_domain:
return
if settings.DEBUG or domain in LOCAL_HOST_NAMES:
return
raise DisallowedHost(f'Unknown host: {host}')
评论列表
文章目录