forked from CGM_Public/pretix_original
Improve error message on mismatching host header on new installations
This commit is contained in:
52
src/pretix/base/templates/400_hostname.html
Normal file
52
src/pretix/base/templates/400_hostname.html
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{% extends "error.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% load static %}
|
||||||
|
{% block title %}{% trans "Unknown host" %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<i class="fa fa-question-circle-o fa-fw big-icon"></i>
|
||||||
|
<div class="error-details">
|
||||||
|
<h1>{% trans "Unknown host" %}</h1>
|
||||||
|
<p>
|
||||||
|
{% blocktrans trimmed with host=header_host %}
|
||||||
|
Your browser told us that you want to access "{{ header_host }}". Unfortunately, we don't have
|
||||||
|
any content for this domain.
|
||||||
|
{% endblocktrans %}
|
||||||
|
</p>
|
||||||
|
{% if is_fresh_install %}
|
||||||
|
<p>
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
It looks like this is a fresh installation of pretix. This error message is probably caused due to
|
||||||
|
the fact that either your configuration includes the wrong site URL or your reverse proxy is sending
|
||||||
|
the wrong header.
|
||||||
|
{% endblocktrans %}
|
||||||
|
</p>
|
||||||
|
<dl>
|
||||||
|
<dt>{% trans "Expected host according to configuration" %}</dt>
|
||||||
|
<dd><code>{{ site_host }}</code></dd>
|
||||||
|
<dt>{% trans "Received headers" %}</dt>
|
||||||
|
<dd>
|
||||||
|
<code>Host: {{ request.headers.Host }}</code>
|
||||||
|
{% if xfh %}
|
||||||
|
<br>
|
||||||
|
<code>X-Forwarded-For: {{ xfh }}</code>
|
||||||
|
{% if not settings.USE_X_FORWARDED_HOST %}({% trans "ignored" %}){% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</dd>
|
||||||
|
<dt>{% trans "Derived host from headers" %}</dt>
|
||||||
|
<dd><code>{{ header_host }}</code></dd>
|
||||||
|
</dl>
|
||||||
|
{% else %}
|
||||||
|
<p>
|
||||||
|
{% blocktrans trimmed %}
|
||||||
|
If you just configured this as a domain for your ticket shop, you now need to set this up as a "custom domain"
|
||||||
|
in your organizer account.
|
||||||
|
{% endblocktrans %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
<p class="links">
|
||||||
|
<a id='goback' href='#'>{% trans "Take a step back" %}</a>
|
||||||
|
· <a id='reload' href='#'>{% trans "Try again" %}</a>
|
||||||
|
</p>
|
||||||
|
<img src="{% static "pretixbase/img/pretix-logo.svg" %}" class="logo"/>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@@ -43,6 +43,7 @@ from django.core.cache import cache
|
|||||||
from django.core.exceptions import DisallowedHost
|
from django.core.exceptions import DisallowedHost
|
||||||
from django.http.request import split_domain_port
|
from django.http.request import split_domain_port
|
||||||
from django.middleware.csrf import CsrfViewMiddleware as BaseCsrfMiddleware
|
from django.middleware.csrf import CsrfViewMiddleware as BaseCsrfMiddleware
|
||||||
|
from django.shortcuts import render
|
||||||
from django.urls import set_urlconf
|
from django.urls import set_urlconf
|
||||||
from django.utils.cache import patch_vary_headers
|
from django.utils.cache import patch_vary_headers
|
||||||
from django.utils.deprecation import MiddlewareMixin
|
from django.utils.deprecation import MiddlewareMixin
|
||||||
@@ -112,7 +113,15 @@ class MultiDomainMiddleware(MiddlewareMixin):
|
|||||||
elif settings.DEBUG or domain in LOCAL_HOST_NAMES:
|
elif settings.DEBUG or domain in LOCAL_HOST_NAMES:
|
||||||
request.urlconf = "pretix.multidomain.maindomain_urlconf"
|
request.urlconf = "pretix.multidomain.maindomain_urlconf"
|
||||||
else:
|
else:
|
||||||
raise DisallowedHost("Unknown host: %r" % host)
|
with scopes_disabled():
|
||||||
|
is_fresh_install = not Event.objects.exists()
|
||||||
|
return render(request, '400_hostname.html', {
|
||||||
|
'header_host': domain,
|
||||||
|
'site_host': default_domain,
|
||||||
|
'settings': settings,
|
||||||
|
'xfh': request.headers.get('X-Forwarded-Host'),
|
||||||
|
'is_fresh_install': is_fresh_install,
|
||||||
|
})
|
||||||
else:
|
else:
|
||||||
raise DisallowedHost("Invalid HTTP_HOST header: %r." % host)
|
raise DisallowedHost("Invalid HTTP_HOST header: %r." % host)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user