Um Ihre Dokumentation unter einem benutzerdefinierten Unterpfad wie yoursite.com/docs mit Cloudflare zu hosten, müssen Sie einen Cloudflare-Worker erstellen und konfigurieren.
Bevor Sie beginnen, benötigen Sie ein Cloudflare-Konto und einen Domainnamen (kann auf oder außerhalb von Cloudflare verwaltet werden).

Repository-Struktur

Ihre Dokumentationsdateien müssen in Ihrem Repository so organisiert sein, dass sie der gewählten Subpfadstruktur entsprechen. Wenn Sie Ihre Dokumentation beispielsweise unter yoursite.com/docs bereitstellen möchten, erstellen Sie ein Verzeichnis docs/ mit allen Dokumentationsdateien.

Einen Cloudflare-Worker einrichten

Erstellen Sie einen Cloudflare-Worker, indem Sie der Einführung zu Cloudflare Workers folgen, falls noch nicht geschehen.
Wenn Ihr DNS-Anbieter Cloudflare ist, aktivieren Sie kein Proxied für den CNAME-Eintrag.

Proxys mit Vercel-Bereitstellungen

Wenn Sie Cloudflare als Proxy mit Vercel-Bereitstellungen verwenden, müssen Sie die Konfiguration korrekt vornehmen, um Konflikte mit der Domainverifizierung von Vercel und der Ausstellung von SSL-Zertifikaten zu vermeiden. Eine fehlerhafte Proxy-Konfiguration kann verhindern, dass Vercel SSL-Zertifikate von Let’s Encrypt ausstellt, und zu Fehlern bei der Domainverifizierung führen.

Erforderliche Pfad-Allowlist

Ihr Cloudflare-Worker muss den Traffic zu diesen spezifischen Pfaden zulassen, ohne ihn zu blockieren oder umzuleiten:
  • /.well-known/acme-challenge/* – erforderlich für die Let’s-Encrypt-Zertifikatsvalidierung
  • /.well-known/vercel/* – erforderlich für die Vercel-Domainvalidierung
Auch wenn Cloudflare viele Validierungsregeln automatisch handhabt, können zusätzliche benutzerdefinierte Regeln diesen kritischen Traffic unbeabsichtigt blockieren.

Anforderungen an die Weiterleitung von Headern

Stellen Sie sicher, dass der HOST-Header in Ihrer Worker-Konfiguration korrekt weitergeleitet wird. Eine fehlerhafte Weiterleitung von Headern führt dazu, dass Verifizierungsanfragen fehlschlagen.

Routing konfigurieren

Wähle in deinem Cloudflare-Dashboard Edit Code und füge das folgende Skript in den Code deines Workers ein. Siehe die Cloudflare-Dokumentation für weitere Informationen zum Bearbeiten eines Workers.
Ersetze „[SUBDOMAIN]“ durch deine eindeutige Subdomain, „[YOUR_DOMAIN]“ durch die Basis-URL deiner Website und „/docs“ durch den gewünschten Unterpfad, falls abweichend.
addEventListener("fetch", (event) => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  try {
    const urlObject = new URL(request.url);
    
    // If the request is to a Vercel verification path, allow it to pass through
    if (urlObject.pathname.startsWith('/.well-known/')) {
      return await fetch(request);
    }
    
    // If the request is to the docs subdirectory
    if (/^\/docs/.test(urlObject.pathname)) {
      // Then Proxy to Mintlify
      const DOCS_URL = "[SUBDOMAIN].mintlify.dev";
      const CUSTOM_URL = "[YOUR_DOMAIN]";

      let url = new URL(request.url);
      url.hostname = DOCS_URL;

      let proxyRequest = new Request(url, request);

      proxyRequest.headers.set("Host", DOCS_URL);
      proxyRequest.headers.set("X-Forwarded-Host", CUSTOM_URL);
      proxyRequest.headers.set("X-Forwarded-Proto", "https");
      // If deploying to Vercel, preserve client IP
      proxyRequest.headers.set("CF-Connecting-IP", request.headers.get("CF-Connecting-IP"));

      return await fetch(proxyRequest);
    }
  } catch (error) {
    // If no action found, play the regular request
    return await fetch(request);
  }
}
Wähle Deploy und warte, bis die Änderungen übernommen wurden.
Nach der Konfiguration Ihres DNS sind benutzerdefinierte Subdomains in der Regel innerhalb weniger Minuten verfügbar. Die DNS-Propagation kann manchmal 1–4 Stunden dauern und in seltenen Fällen bis zu 48 Stunden. Wenn Ihre Subdomain nicht sofort verfügbar ist, warten Sie bitte zunächst ab, bevor Sie mit der Fehlerbehebung beginnen.

Testen Sie Ihren Worker

Nachdem Ihr Code bereitgestellt wurde, testen Sie Ihren Worker, um sicherzustellen, dass er zu Ihrer Mintlify-Dokumentation weiterleitet.
  1. Testen Sie über die Vorschau-URL des Workers: your-worker.your-subdomain.workers.dev/docs
  2. Verifizieren Sie, dass der Worker korrekt zu Ihrer Mintlify-Dokumentation und Ihrer Website weiterleitet.

Eigene Domain hinzufügen

  1. Navigiere in deinem Cloudflare-Dashboard zu deinem Worker.
  2. Gehe zu Settings > Domains & Routes > Add > Custom Domain.
  3. Füge deine Domain hinzu.
Wir empfehlen, deine Domain sowohl mit als auch ohne vorangestelltes www. hinzuzufügen.
Weitere Informationen findest du in der Cloudflare-Dokumentation unter Add a custom domain.

DNS-Konflikte beheben

Wenn Ihre Domain bereits auf einen anderen Dienst verweist, müssen Sie den bestehenden DNS-Eintrag entfernen. Ihr Cloudflare-Worker muss so konfiguriert sein, dass er den gesamten Traffic für Ihre Domain steuert.
  1. Löschen Sie den bestehenden DNS-Eintrag für Ihre Domain. Weitere Informationen finden Sie in der Cloudflare-Dokumentation unter Delete DNS records.
  2. Kehren Sie zu Ihrem Worker zurück und fügen Sie Ihre benutzerdefinierte Domain hinzu.

Benutzerdefiniertes Routing für Webflow

Wenn Sie Webflow zum Hosten Ihrer Hauptseite verwenden und Mintlify-Dokumentation unter /docs auf derselben Domain bereitstellen möchten, müssen Sie über Cloudflare Workers ein benutzerdefiniertes Routing konfigurieren, um den gesamten Nicht-Docs-Traffic per Proxy an Ihre Hauptseite weiterzuleiten.
Stellen Sie sicher, dass Ihre Hauptseite auf einer Landingpage eingerichtet ist, bevor Sie diesen Worker bereitstellen, sonst sehen Besucher Ihrer Hauptseite Fehlermeldungen.
  1. Richten Sie in Webflow eine Landingpage für Ihre Hauptseite ein, z. B. landing.yoursite.com. Das ist die Seite, die Besucher sehen, wenn sie Ihre Website aufrufen.
  2. Stellen Sie Ihre Hauptseite auf der Landingpage bereit. So bleibt Ihre Hauptseite zugänglich, während Sie den Worker konfigurieren.
  3. Aktualisieren Sie zur Vermeidung von Konflikten alle absoluten URLs Ihrer Hauptseite auf relative.
  4. Wählen Sie in Cloudflare Edit Code und fügen Sie das folgende Skript in den Code Ihres Workers ein.
Ersetzen Sie [SUBDOMAIN] durch Ihre eindeutige Subdomain, [YOUR_DOMAIN] durch die Basis-URL Ihrer Website, [LANDING_DOMAIN] durch die URL Ihrer Landingpage und /docs durch Ihren gewünschten Unterpfad, falls abweichend.
  addEventListener("fetch", (event) => {
  event.respondWith(handleRequest(event.request));
  });
  async function handleRequest(request) {
  try {
    const urlObject = new URL(request.url);
    
    // If the request is to a Vercel verification path, allow it to pass through
    if (urlObject.pathname.startsWith('/.well-known/')) {
      return await fetch(request);
    }
    
    // If the request is to the docs subdirectory
    if (/^\/docs/.test(urlObject.pathname)) {
      // Proxy to Mintlify
      const DOCS_URL = "[SUBDOMAIN].mintlify.dev";
      const CUSTOM_URL = "[YOUR_DOMAIN]";
      let url = new URL(request.url);
      url.hostname = DOCS_URL;
      let proxyRequest = new Request(url, request);
      proxyRequest.headers.set("Host", DOCS_URL);
      proxyRequest.headers.set("X-Forwarded-Host", CUSTOM_URL);
      proxyRequest.headers.set("X-Forwarded-Proto", "https");
      // If deploying to Vercel, preserve client IP
      proxyRequest.headers.set("CF-Connecting-IP", request.headers.get("CF-Connecting-IP"));
      return await fetch(proxyRequest);
    }
    // Route everything else to main site
    const MAIN_SITE_URL = "[LANDING_DOMAIN]";
    if (MAIN_SITE_URL && MAIN_SITE_URL !== "[LANDING_DOMAIN]") {
      let mainSiteUrl = new URL(request.url);
      mainSiteUrl.hostname = MAIN_SITE_URL;
      return await fetch(mainSiteUrl, {
        method: request.method,
        headers: request.headers,
        body: request.body
      });
    }
  } catch (error) {
    // If no action found, serve the regular request
    return await fetch(request);
  }
  }
  1. Wählen Sie Deploy und warten Sie, bis die Änderungen verbreitet sind.
Nach der Konfiguration Ihres DNS sind benutzerdefinierte Subdomains in der Regel innerhalb weniger Minuten verfügbar. Die DNS-Propagation kann manchmal 1–4 Stunden dauern und in seltenen Fällen bis zu 48 Stunden. Wenn Ihre Subdomain nicht sofort verfügbar ist, warten Sie bitte zunächst ab, bevor Sie mit der Fehlerbehebung beginnen.