Mehrere GitHub-Seiten und benutzerdefinierte Domains über DNS

74

Ich möchte eine Benutzerseite und mehrere Projektseiten haben, die von GitHub Pages gehostet werden, aber unter EINER benutzerdefinierten Domain verfügbar sind (natürlich mit Subdomains für jedes GitHub Pages-Repository). Meine Ziele sind also wie folgt:

Nach meinem derzeitigen Verständnis erlauben GitHub-Seiten nur EINEN CNAME-Ressourceneintrag für eine Seite (sowohl Benutzerseiten als auch Projektseiten), die in der CNAMEDatei im Stammverzeichnis eines Git-Repositorys definiert ist. Ich habe bereits viele Dinge ausprobiert (mit DNS-Einträgen und Header-Weiterleitungen bei meinem Domain-Anbieter EUserv herumspielen , aber ich kann nur unter einer URL ( http://blog.florianwolters.de ) auf meine GitHub-Benutzerseiten zugreifen . Mir ist bekannt, dass DNS Änderungen können bis zu zwei Tage dauern.

Kann mir jemand erklären, wie ich die oben beschriebenen Ziele erreichen kann? Ich kann nicht glauben, dass dies nicht möglich ist, aber ich bin auch kein Experte für DNS usw.

Wenn dies nicht möglich ist: Was ist Ihre vorgeschlagene Problemumgehung? Ich möchte auf alle meine GitHub-Seiten unter einer Domain (und den Subdomains dieser Domain) zugreifen.

Ressourcen

Florian Wolters
quelle
Nicht möglich. Siehe Mehrere Domänen in der CNAME-Datei unter Meine benutzerdefinierte Domäne funktioniert nicht
Bengt
Dieser Blog-Beitrag beschreibt das Problem. Captainwhippet.com/blog/2014/05/11/blog-setup-details.html
Steve Moser

Antworten:

74

Du kannst es schaffen. Beachten Sie, dass alle DNS-CNAME-Einstiegspunkte auf denselben Host verweisen.

1: github.com/florianwolters/florianwolters.github.com

Inhalt der CNAME-Datei: blog.florianwolters.de

DNS-CNAME: blog> florianwolters.github.com

2: github.com/florianwolters/pear/tree/gh-pages

Inhalt der CNAME-Datei: pear.florianwolters.de

DNS-CNAME: pear> florianwolters.github.com

Joseph Fneisz
quelle
OK, der Dateiinhalt sowohl der CNAME-Dateien als auch der ersten CNAME-Ressourceneinträge stimmt bereits mit Ihren vorgeschlagenen Werten überein. Ich habe den zweiten DNS-CNAME-Eintrag geändert. Ich werde morgen berichten, wenn es funktioniert. Außerdem bleibt ein Teil meiner Frage offen: Welche CNAME-Datensätze muss ich erstellen, um blog.florianwolters.de über florianwolters.de und www.florianwolters.de zu erreichen? Ich kann das nicht zum Laufen bringen. Auch eine Header-Weiterleitung funktioniert nicht?! Trotzdem danke bisher!
Florian Wolters
2
Wenn Sie eine Top-Level-Domain wie florianwolters.de verwenden, müssen Sie einen A-Datensatz verwenden, der auf 204.232.175.78 verweist. Auf diese Weise erhalten Sie eine Weiterleitung zum WWW, was ziemlich Standard ist. Ich denke, Sie müssen auch ein separates WWW-Projekt erstellen. Das einzige Problem ist dann, wie würden Sie vom WWW zum Blog umleiten? Dies muss idealerweise auf der Serverseite erfolgen, dh es wird eine Art serverseitige Sprach- / Framework-Kombination verwendet, die auf der WWW-Subdomain ausgeführt werden soll. In diesem Fall kann Github Ihnen nicht viel helfen. Beispiele: github.com/thoughtnirvana/www_redirect
Joseph Fneisz
2
Ihre Antwort war die Lösung für mein Problem. Jetzt kann ich über Subdomains so viele Projekte hosten, wie ich möchte. Das ist großartig! Siehe meine Antwort für eine abschließende Klarstellung. Ich habe es serverseitig (bei meinem Domain-Registrar) mit zwei einfachen Header-Weiterleitungen zum Laufen gebracht. Das reicht für meine Forderungen. Der Grund, warum dies vorher nicht funktioniert hat, war, dass ich die Standard-A-Ressourceneinträge gelöscht habe (die auf eine IP meines Domain-Registrars verweisen). Daher funktionierten die Header-Weiterleitungen nicht.
Florian Wolters
1
Jesus Mary Christ: D
Deming
1
Vielen Dank, es funktioniert immer noch und es ist unglaublich!
Kalitine
5

Sie können entweder einen CNAME- Ressourceneintrag oder einen A- Ressourceneintrag zusammen mit GitHub Pages verwenden .

Abschließend muss man sich also entscheiden:

  • Entweder Sie verwenden example.orgund www.example.org(ersetzen Sie den vorhandenen A-Datensatz durch 204.232.175.78) ...
  • ... oder eine Subdomain, zB blog.example.org(einen neuen CNAME-Datensatz mit erstellen <username>.github.com).

Jetzt müssen Sie auswählen, wie eine (Unter-) Domäne einer anderen zugeordnet werden soll:

  • Wenn Sie die erste verwenden, können Sie Weiterleitungen verwenden, indem Sie HTTP-Header von den gewünschten Subdomänen zu verwenden example.org.
  • Wenn Sie Letzteres verwenden, müssen Sie Header-Weiterleitungen von example.orgund www.example.orgzu den gewünschten Subdomains verwenden.

Siehe auch GitHub Pages - Hilfe für Hilfe und meine GitHub Pages - Repository für eine Beispiel - CNAMEDatei.

Bearbeiten: GitHub Pages hat eine detaillierte Seite hinzugefügt, auf der beschrieben wird, wie Sie hier eine benutzerdefinierte Domain einrichten .

Florian Wolters
quelle
Können Sie noch etwas klarstellen: Was meinen Sie mit: "... verwenden Sie Header-Weiterleitungen von der gewünschten (n) Subdomain (s) zu example.org." Wollen Sie einen CName-Datensatz auf Ihrem DNS erstellen? DNS CNAME Birne -> example.org ?? ODER DNS-CNAME Birne -> Benutzername.github.com?
Elviejo79
1
@elviejo: Ich glaube, er meinte, Weiterleitungen mit HTTP-Headern zu verwenden.
Verdammt
1

Sie können nur einen CNAME-Ressourceneintrag für eine Seite (sowohl Benutzerseiten als auch Projektseiten) in der CNAME-Datei im Stammverzeichnis eines Git-Repositorys definieren.

Sie können dies umgehen, indem Sie in Ihren DNS-Einstellungen einen CNAME-Eintrag für Ihren Host (pear) erstellen, der auf florianwolters.github.com verweist, und einen Eintrag in Ihrer CNAME-Datei im Repository für pear.florianwolters.de vornehmen

goyuiitv
quelle