Ich habe eine gh-pages
Filiale in einem meiner http://github.com Repos. Die GitHub-Projektseiten funktionieren einwandfrei, wenn ich zu http://myuser.github.com/myrepo gehe
Ich möchte eine benutzerdefinierte Domain (myexample.com) einrichten, die diese Projektseiten bereitstellt. Ich möchte beides myexample.com
und www.myexample.com
diese Projektseiten bedienen.
Die Hilfe zu GitHub-Seiten besagt, dass Sie einen A-Eintrag und einen CNAME-Eintrag in Ihrem DNS erstellen sollen . Der A-Eintrag ist sinnvoll, aber ich weiß nicht, welchen CNAME-Eintrag ich in meinem DNS erstellen soll.
In den gh-pages
Dokumenten wird angegeben, dass ein CNAME
Datensatz für 'charlie.github.com' erstellt werden soll, bei dem es sich um ein Benutzerseiten-Repository handelt. Ich habe kein Benutzerseiten-Repository - ich habe nur ein Projekt-Repository und einen gh-pages
Zweig, den ich für myexample.com
und verwenden möchte www.myexample.com
.
Muss ich ein Benutzerseiten-Repository erstellen, damit ich meine Projektseite für www.myexample.com und myexample.com verwenden kann?
Ich würde es einfach versuchen, aber ich möchte sicherstellen, dass dies funktioniert, da ich bereits www.myexample.com live habe und keinen Fehler machen möchte.
Ich habe den GitHub-Support per E-Mail benachrichtigt und die Antwort war
Soweit ich weiß, können nicht beide auf dieselben Gh-Seiten verweisen.
Es fällt mir schwer zu glauben, dass sie nur A-Datensätze für Projektseiten unterstützen würden.
Hat das schon mal jemand erfolgreich gemacht?
Antworten:
23.01.19 UPDATE:
Die Dinge haben sich seit meiner letzten Antwort ziemlich verändert (zum Besseren). Diese aktualisierte Antwort zeigt Ihnen, wie Sie Folgendes konfigurieren:
Am Ende werden alle Anfragen an
example.com
an https://www.example.com weitergeleitet (oder an http: //, wenn Sie sich dafür entscheiden, HTTPS NICHT zu verwenden). Ich benutze immerwww
als meine letzte Landung. Warum ( 1 , 2 ) ist für eine andere Diskussion.Diese Antwort ist lang, aber nicht kompliziert. Ich war aus Gründen der Klarheit ausführlich, da die GitHub-Dokumente zu diesem Thema nicht klar oder linear sind.
Schritt 1: Aktivieren Sie GitHub-Seiten in den GitHub-Einstellungen
GitHub Pages
Abschnitt. Sie haben zwei Möglichkeiten:master branch
wird/README.md
als Ihr Web behandeltindex.html
. Die Auswahlmaster branch /docs folder
wird/docs/README.md
als Ihr Web behandeltindex.html
.Your site is ready to be published at
Schritt 2: Geben Sie in den GitHub-Einstellungen eine benutzerdefinierte Domäne an
Geben Sie hier Ihren benutzerdefinierten Domainnamen ein und klicken Sie auf
save
:Dies ist ein subtiler, aber wichtiger Schritt.
example.com
,www.example.com
wird zu weitergeleitetexample.com
www.example.com
,example.com
wird zu weitergeleitetwww.example.com
.Wie bereits erwähnt, empfehle ich, immer bei zu landen,
www
damit ichwww.example.com
wie oben abgebildet eintreten kann.Schritt 3: Erstellen Sie DNS-Einträge
Erstellen Sie in der Webkonsole Ihres DNS-Anbieters vier
A
Einträge und einenCNAME
.A
Datensätze für@
(aka root apex):Bei einigen DNS-Anbietern müssen Sie angeben
@
, bei anderen (wie AWS Route 53) lassen Sie die Subdomain leer, um anzuzeigen@
. In beiden Fällen sind dies dieA
zu erstellenden Datensätze:CNAME
Datensatz, auf den www.example.com verweistYOUR-GITHUB-USERNAME.github.io
.Dies ist der verwirrendste Teil.
Beachten Sie
YOUR-GITHUB-USERNAME
NICHT den GitHub-Repo-Namen! Der Wert vonYOUR-GITHUB-USERNAME
wird durch diese Tabelle bestimmt .Für eine Benutzerseiten- Site (höchstwahrscheinlich das, was Sie sind) lautet der
CNAME
Eintrag wie folgtusername.github.io
:Für eine Site auf Organisationsseiten lautet der
CNAME
Eintrag wie folgtorgname.github.io
:Schritt 5: Bestätigen Sie die DNS-Einträge
Bestätigen Sie Ihre
A
Aufzeichnungen durch Ausführendig +noall +answer example.com
. Es sollte die vier185.x.x.x
eingegebenen IP-Adressen zurückgeben.Bestätigt Ihren
CNAME
Datensatz durch Ausführendig www.example.com +nostats +nocomments +nocmd
. Es sollte a zurückgebenCNAME YOUR-GITHUB-USERNAME.github.io
Es kann ungefähr eine Stunde dauern, bis diese DNS-Einträge aufgelöst / weitergegeben werden. Sobald dies der Fall ist, öffnen Sie Ihren Browser für
http://example.com
und er sollte zu weiterleitenhttp://www.example.com
Schritt 6: SSL (HTTPS) -Konfiguration. Optional, aber sehr zu empfehlen
Nachdem die benutzerdefinierte Domain funktioniert hat, kehren Sie zu den Repo-Einstellungen zurück. Wenn Sie die Einstellungsseite bereits geöffnet haben, aktualisieren Sie die Seite hart.
Wenn sich unter dem
Enforce HTTPS
Kontrollkästchen eine Meldung befindet , die besagt, dass sie noch verarbeitet wird, müssen Sie warten. Möglicherweise müssen Sie auch diesave
Schaltfläche imCustom domain
Abschnitt drücken , um dieEnforce HTTPS
Verarbeitung zu starten .Sobald die Verarbeitung abgeschlossen ist, sollte es folgendermaßen aussehen:
Klicken Sie einfach auf das
Enforce HTTPS
Kontrollkästchen und zeigen Sie mit Ihrem Browser aufhttps://example.com
. Es sollte umleiten und öffnenhttps://www.example.com
DAS IST ES!
GitHub hält Ihr HTTPS-Zertifikat automatisch auf dem neuesten Stand UND sollte den Apex behandeln,
www
um über HTTPS umzuleiten.Hoffe das hilft!!
...
Alte (vor dem 23.01.19) Antwort
Also habe ich es herausgefunden. James McLaughlin gab mir den Anstoß, den ich brauchte.
So richten Sie eine benutzerdefinierte Domain für ein Gh-Pages-Projekt-Seiten-Repo ein, das www.IhreDomain.com und IhreDomain.com verwaltet (vorausgesetzt, Sie haben bereits einen Gh-Seiten-Zweig in Ihrem Repo):
yourdomain.com
. Commit dann drücken.cname
Einträge ein. Eine für die Wurzelspitze (@) und eine für www. Beide zeigen aufYOURusername.github.io
. Wenn Ihr DNS-Anbieter keineALIAS
Einträge auf der Stammspitze (@) unterstützt, erstellen Sie einfachA
Einträge, die auf192.30.252.153
und verweisen192.30.252.154
Warten Sie, bis Ihre Nameserver aktualisiert sind:
dig yourdomain.com +nostats +nocomments +nocmd
quelle
204.232.175.78
Adresse als IP.Überblick
Die Dokumentation ist etwas verwirrend, wenn es um Projektseiten geht , im Gegensatz zu Benutzerseiten . Es fühlt sich an, als müsste man mehr tun, aber eigentlich ist der Prozess sehr einfach.
Es involviert:
Was du bekommen wirst
Ihr Inhalt wird über eine URL des Formulars http://nicholasjohnson.com bereitgestellt .
Wenn Sie http://www.nicholasjohnson.com besuchen, wird eine 301-Weiterleitung an die nackte Domain zurückgegeben.
Der Pfad wird von der Weiterleitung respektiert, sodass der Verkehr zu http://www.nicholasjohnson.com/angular zu http://nicholasjohnson.com/angular umgeleitet wird .
Sie können eine Projektseite pro Repository haben. Wenn Ihre Repos geöffnet sind, können Sie so viele haben, wie Sie möchten.
Hier ist der Prozess:
1. Erstellen Sie einen Datensatz
Zeigen Sie für die A-Datensätze @ auf die folgenden IP-Adressen:
Dies sind die statischen Github-IP-Adressen, von denen aus Ihre Inhalte bereitgestellt werden.
2. Erstellen Sie einen CNAME-Datensatz
Zeigen Sie für den CNAME-Datensatz www auf yourusername.github.io. Beachten Sie den nachfolgenden Punkt. Beachten Sie auch, dass dies der Benutzername und nicht der Projektname ist . Sie müssen den Projektnamen noch nicht angeben. Github verwendet die CNAME- Datei , um zu bestimmen, aus welchem Projekt Inhalte bereitgestellt werden sollen .
z.B
Der Zweck des CNAME besteht darin, den gesamten WWW-Subdomain-Verkehr auf eine GitHub-Seite umzuleiten, die auf die nackte Domain umleitet.
Hier ist ein Screenshot der Konfiguration, die ich für meine eigene Website http://nicholasjohnson.com verwende :
3. Erstellen Sie eine CNAME-Datei
Fügen Sie Ihrem Projektstamm im Zweig gh-pages eine Datei mit dem Namen CNAME hinzu. Dies sollte die Domain enthalten, die Sie bedienen möchten. Stellen Sie sicher, dass Sie festschreiben und pushen.
z.B
Diese Datei weist GitHub an, dieses Repo zu verwenden, um den Datenverkehr zu dieser Domain zu verarbeiten.
4. Warten Sie
Warten Sie nun 5 Minuten, Ihre Projektseite sollte jetzt live sein.
quelle
yourUserName.github.io.
Die CNAME-Datei im gh-pages- Zweig enthält eine Zeile:
www.mydomain.com
(stattmydomain.com
)Unabhängig von Ihrer Präferenz für die Umleitung (mit anderen Worten, unabhängig davon, was sich in Ihrer CNAME-Datei im Zweig gs-pages befindet) sollten Sie dies bei Ihrem DNS-Anbieter wie folgt einrichten:
quelle
Kurze Antwort
Diese detaillierten Erklärungen sind großartig, aber die Verwirrung des OP (und meiner) könnte mit einem Satz behoben werden: "Direktes DNS zu Ihrem GitHub- Benutzernamen oder Ihrer Organisation, Ignorieren des spezifischen Projekts und Hinzufügen der entsprechenden CNAME- Dateien in Ihren Projekt-Repositorys: GitHub sendet das richtige DNS für das richtige Projekt basierend auf Dateien im Respository. "
quelle
In der Dokumentation von Github vom 29. August 2013 heißt es:
quelle
username.github.io/projectname
biswww.projectname.com
.Heutzutage ist es viel einfacher!
quelle
Nach ein wenig Frustration habe ich gerade festgestellt, dass Sie bei Verwendung von PairNIC lediglich die Einstellung "Web Forwarding" unter "Custom DNS" aktivieren und den Benutzernamen.github.io/project-Adresse angeben müssen Richten Sie automatisch sowohl die Apex- als auch die Subdomain-Datensätze für Sie ein. Es scheint genau das zu tun, was in der akzeptierten Antwort vorgeschlagen wird. Sie können jedoch nicht genau dasselbe tun, indem Sie Datensätze manuell hinzufügen. Sehr eigenartig. Wie auch immer, ich habe eine Weile gebraucht, um das herauszufinden, also dachte ich, ich würde es teilen, um allen anderen die Mühe zu ersparen.
quelle
Ich möchte meine Schritte teilen , die sich ein wenig von denen von rynop und superluminary unterscheiden .
A
Record ist aber genau das gleicheCNAME
fürwww
ich würde es vorziehen , um es zu meinem leeren Domain zu umleiten (non-www
)Diese Konfiguration bezieht sich auf die Anleitung der bevorzugten Domäne . Die Domain-Einstellung von
www
tonon www
oder umgekehrt kann bei jedem Domain-Anbieter unterschiedlich sein. Da sich meine Domain unter GoDaddy befindet, habe ich sie unter der Domain-Einstellung mithilfe der Subdomain-Weiterleitung (301) festgelegt.Als Ergebnis des Verweises der Domain auf das Github-Repository werden dann alle URLs für
master
undgh-pages
Zweig ähnlich wie die unten aufgeführten an die bevorzugte Domain gesendet:Meister
Durch Erstellen einer
CNAME
Datei immaster
Zweig (überprüfen Sie diese in meinem Benutzer-Repository ).Gh-Seiten
Indem Sie dieselbe
CNAME
Datei imgh-pages
Zweig erstellen (überprüfen Sie sie in meinem Projekt-Repository ).Zusätzlich zu der
CNAME
obigen Datei müssen Sie möglicherweise die Jekyll-Verarbeitung auf GitHub-Seiten vollständig umgehen, indem Sie eine Datei erstellen, die.nojekyll
im Stammverzeichnis Ihres Seitenrepos benannt ist.quelle