> $domains * @var string $requestHost * @var App\Security\Csrf $csrf */ use App\Service\DomainChecker; use App\Support\ShortDomain; $statusClass = static fn (string $status): string => match ($status) { DomainChecker::OK => 'ok', DomainChecker::WARNING => 'warn', default => 'error', }; $statusSymbol = static fn (string $status): string => match ($status) { DomainChecker::OK => '✓', DomainChecker::WARNING => '!', default => '×', }; ?>

Domains

Unter diesen Domains werden Kurzlinks ausgeliefert. Ein Slug muss nur innerhalb seiner Domain eindeutig sein.

Neue Domain

Prüfung für

Zur Schritt-für-Schritt-Anleitung

Domain Bezeichnung Kurzlinks Aktionen
Standard gerade aufgerufen
field() ?>
Kurzlink Bearbeiten
field() ?>
field() ?>

Was beim Provider zu tun ist

Eine weitere Domain hier einzutragen genügt nicht – sie muss beim Domain-Anbieter und beim Hoster auf diese Installation zeigen. Vier Schritte, danach einmal prüfen.

Wichtig: Die neue Domain darf keine zweite Installation bekommen und keine „Domain-Weiterleitung“ des Registrars sein. Beides funktioniert nicht: eine Weiterleitung ersetzt die Adresse im Browser, der Slug ginge dabei verloren. Die Domain muss vom selben Webroot beantwortet werden wie die bestehende Installation.

Nach jedem Schritt lässt sich über Prüfen in der Liste oben kontrollieren, wie weit die Einrichtung gediehen ist – die Prüfung ruft die Domain tatsächlich auf und meldet, woran es noch hakt.

  1. DNS: Domain auf den Server zeigen lassen

    Beim Domain-Anbieter (dort, wo die Domain registriert ist) in der DNS- bzw. Zonenverwaltung einen Eintrag anlegen:

    TypNameWertWofür
    Aqr203.0.113.10IPv4 des Servers
    AAAAqr2001:db8::10IPv6, falls vorhanden
    CNAMEqrshort.example.de.Alternative zu A/AAAA – zeigt auf den vorhandenen Hostnamen

    Entweder A (+ AAAA) oder CNAME – nicht beides. Die richtige IP steht im Hosting-Panel oder im bereits vorhandenen Eintrag der Hauptdomain. Änderungen brauchen je nach TTL wenige Minuten bis einige Stunden.

    Wo finde ich das bei meinem Anbieter?

    Die Menüs heißen unterschiedlich, gemeint ist immer dasselbe: IONOS „Domains & SSL → Domain → DNS“ · Strato „Domainverwaltung → Domain verwalten → DNS-Einstellungen“ · Netcup „Domains → DNS“ · Hetzner „DNS Console → Zone → Records“ · Cloudflare „DNS → Records“ · All-Inkl „Domains → Einstellungen → DNS“. Liegen Domain und Hosting beim selben Anbieter, wird der Eintrag beim Anlegen der Subdomain oft automatisch gesetzt – Schritt 1 entfällt dann.

  2. Hosting: Domain auf dasselbe Verzeichnis legen

    Der Webserver muss die neue Domain beantworten und dabei denselben Webroot verwenden wie die bestehende Installation.

    Shared Hosting mit Plesk

    „Websites & Domains → Subdomain hinzufügen“. Plesk schlägt ein neues, eigenes Verzeichnis vor – dieses bei Dokumentenstamm auf das Verzeichnis der vorhandenen Installation ändern (dort, wo index.php liegt, in der Regel …/httpdocs/public bzw. …/httpdocs). Kein neues Hosting-Paket anlegen.

    Shared Hosting mit cPanel

    „Domains → Create A New Domain“. Den Haken bei „Share document root“ setzen bzw. den Document Root manuell auf das Verzeichnis der vorhandenen Installation zeigen lassen.

    Anderes Hosting-Panel (IONOS, Strato, All-Inkl …)

    Gesucht ist die Funktion „Subdomain anlegen“ oder „Domain zuordnen“ mit der Möglichkeit, das Zielverzeichnis zu wählen. Dieses auf den Ordner der bestehenden Installation setzen. Manche Anbieter nennen das „Alias-Domain“ oder „Addon-Domain“ – geeignet ist jede Variante, bei der sich das Verzeichnis frei wählen lässt. Nicht geeignet ist „Domain-Weiterleitung“ oder „Frame-Weiterleitung“.

    Eigener Server mit Apache

    Im vorhandenen VirtualHost ergänzen und Apache neu laden:

    <VirtualHost *:443>
        ServerName  short.example.de
        ServerAlias qr.example.de
        DocumentRoot /var/www/urlshort/public
        …
    </VirtualHost>
    
    sudo apachectl configtest && sudo systemctl reload apache2
    Eigener Server mit Nginx

    Die Domain in server_name aufnehmen und neu laden:

    server {
        server_name short.example.de qr.example.de;
        root /var/www/urlshort/public;
        …
    }
    
    sudo nginx -t && sudo systemctl reload nginx
    Docker

    Am Container ist nichts zu tun – er beantwortet jeden Hostnamen. Steht ein Reverse Proxy davor (Traefik, Nginx Proxy Manager, Caddy …), muss die neue Domain dort als weiterer Host auf denselben Dienst zeigen.

  3. HTTPS: Zertifikat für die neue Domain

    Im Hosting-Panel bei der neuen (Sub-)Domain „Let’s Encrypt“ bzw. „SSL/TLS“ aktivieren – bei cPanel erledigt das AutoSSL meist von selbst. Auf einem eigenen Server die Domain in das bestehende Zertifikat aufnehmen:

    sudo certbot --expand -d short.example.de -d qr.example.de

    Solange noch kein Zertifikat vorhanden ist, die Domain hier mit http:// eintragen – sonst zeigen QR-Codes und Kurzlinks auf eine Adresse, die der Browser nicht öffnen kann.

  4. Domain hier eintragen

    Über Neue Domain – exakt so, wie sie im Browser aufgerufen wird (gleiches Schema, gleicher Port). Erst danach ordnet die Anwendung Aufrufe dieser Domain zu.

  5. Prüfen

    In der Liste oben auf Prüfen klicken. Die Anwendung löst den Hostnamen auf und ruft die Domain anschließend von außen auf – kommt der Aufruf hier an, ist die ganze Kette in Ordnung.

    Es klappt nicht – woran liegt es?
    • Zeitüberschreitung oder „Server nicht gefunden“: DNS zeigt noch nicht auf den Server oder ist noch nicht verteilt. Prüfen mit nslookup qr.example.de – die Antwort muss die IP des Servers sein.
    • Fremde Seite, Hoster-Platzhalter oder „Website nicht gefunden“: Die Domain landet in einem anderen Verzeichnis. Dokumentenstamm in Schritt 2 prüfen.
    • Die Adresse im Browser ändert sich: Es ist eine Domain-Weiterleitung eingerichtet statt einer echten Zuordnung. Beim Anbieter umstellen.
    • 404 statt Weiterleitung: Der Kurzlink hängt an einer anderen Domain. Slugs gelten je Domain – in der Liste oben die Domain des Links prüfen.
    • Es kommt das Ziel der Standarddomain: Die Domain ist hier noch nicht eingetragen oder weicht in Schreibweise, Schema oder Port ab.
    • Zertifikatswarnung: Schritt 3 fehlt noch.

Aufrufe über einen nicht eingetragenen Host (z. B. direkt über die IP-Adresse oder hinter einem Proxy) werden der Standarddomain zugeordnet. So bleiben bestehende Links auch dann erreichbar, wenn sich am Hostnamen etwas ändert.