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, dass sowohl myexample.com
Als auch www.myexample.com
Diese Projektseiten bedienen.
GitHub-Seiten helfen sagt, dass Sie einen A-Eintrag und einen CNAME-Eintrag in Ihrem DNS erstellen sollen. Der A-Eintrag macht Sinn, aber ich weiß nicht, welchen CNAME-Eintrag ich in meinem DNS machen 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 Benutzerseitenrepository handelt. Ich habe kein Benutzerseiten-Repository - Ich habe nur ein Projekt-Repository und einen gh-pages
- Zweig, den ich für myexample.com
Und www.myexample.com
Verwenden möchte.
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 eine E-Mail an den GitHub-Support gesendet und die Antwort lautete
Soweit ich weiß, können nicht beide auf die gleichen Gh-Seiten verweisen.
Es fällt mir schwer zu glauben, dass sie nur A-Datensätze für Projektseiten unterstützen.
Hat das schon jemand erfolgreich gemacht?
23.01.19 UPDATE:
Seit meiner letzten Antwort hat sich (zum Besseren) einiges getan. Diese aktualisierte Antwort zeigt Ihnen, wie Sie Folgendes konfigurieren:
Am Ende werden alle Anfragen an example.com
Umgeleitet an https://www.example.com (oder http: //, wenn Sie NICHT HTTPS verwenden). Ich benutze immer www
als letzte Landung. Warum ( 1 , 2 ) ist für eine andere Diskussion.
Diese Antwort ist lang, aber es ist nicht kompliziert. Ich war aus Gründen der Klarheit wortreich, da die GitHub-Dokumente zu diesem Thema nicht klar oder linear sind.
GitHub Pages
. Sie haben zwei Möglichkeiten: master branch
Auswählen, wird /README.md
Als Ihr Web index.html
Behandelt. Wenn Sie master branch /docs folder
Auswählen, wird /docs/README.md
Als Ihr Web index.html
Behandelt.Your site is ready to be published at
Klicken.Geben Sie hier Ihren benutzerdefinierten Domainnamen ein und drücken Sie save
:
Dies ist ein subtiler, aber wichtiger Schritt.
example.com
Ist, wird www.example.com
Zu example.com
Umgeleitet.www.example.com
Ist, wird example.com
Zu www.example.com
Umgeleitet.Wie bereits erwähnt, empfehle ich, immer bei www
zu landen, also habe ich www.example.com
Wie oben abgebildet eingegeben.
Erstellen Sie in der Webkonsole Ihres DNS-Providers vier A
Einträge und einen CNAME
.
A
Datensätze für @
(aka root apex):Bei einigen DNS-Anbietern müssen Sie @
Angeben, bei anderen (wie AWS Route35) müssen Sie lassen Sie die Sub-Domain leer angeben, um @
Anzugeben. In beiden Fällen sind diese die zu erstellenden A
-Datensätze:
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
CNAME
Datensatz, um www.example.com auf YOUR-GITHUB-USERNAME.github.io
Zu verweisen.Dies ist der verwirrendste Teil.
Beachten Sie, dass YOUR-GITHUB-USERNAME
[~ # ~] nicht [~ # ~] der GitHub-Reponame ist! Der Wert von YOUR-GITHUB-USERNAME
Wird durch dieses Diagramm bestimmt.
Für eine Benutzerseiten-Site (höchstwahrscheinlich, was Sie sind) lautet der Eintrag für CNAME
username.github.io
, Z. B .:
Für eine Site mit Organisationsseiten lautet der Eintrag für CNAME
orgname.github.io
, Z.
Bestätigen Sie Ihre A
Datensätze, indem Sie Dig +noall +answer example.com
Ausführen. Es sollte die vier 185.x.x.x
IP-Adressen zurückgeben, die Sie eingegeben haben.
Bestätigt Ihren CNAME
Datensatz durch Ausführen von Dig www.example.com +nostats +nocomments +nocmd
. Es sollte ein CNAME YOUR-GITHUB-USERNAME.github.io
Die Auflösung/Verbreitung dieser DNS-Einträge kann etwa eine Stunde dauern. Wenn dies der Fall ist, öffnen Sie Ihren Browser mit http://example.com
Und er sollte auf http://www.example.com
Umleiten.
Nachdem die benutzerdefinierte Domain funktioniert hat, kehren Sie zu den Repo-Einstellungen zurück. Wenn die Einstellungsseite bereits geöffnet ist, aktualisieren Sie die Seite hart.
Wenn unter dem Kontrollkästchen Enforce HTTPS
Eine Meldung angezeigt wird, dass die Verarbeitung noch läuft, müssen Sie warten. Möglicherweise müssen Sie auch die Schaltfläche save
im Abschnitt Custom domain
Drücken, um die Verarbeitung von Enforce HTTPS
Zu starten.
Sobald die Verarbeitung abgeschlossen ist, sollte es so aussehen:
Klicken Sie einfach auf das Kontrollkästchen Enforce HTTPS
Und zeigen Sie mit Ihrem Browser auf https://example.com
. Es sollte umleiten und öffnen https://www.example.com
GitHub hält Ihr HTTPS-Zertifikat automatisch auf dem neuesten Stand UND sollte den Apex für die Weiterleitung von www
über HTTPS verarbeiten.
Hoffe das hilft!!
...
Also habe ich es herausgefunden. James McLaughlin gab mir den Nudge, den ich brauchte.
So richten Sie eine benutzerdefinierte Domain für ein Projekt-Pages-Repo ein, das www.IhreDomain.com und YourDomain.com verwaltet (vorausgesetzt, Sie haben bereits einen Gh-Pages-Zweig in Ihrem Repo):
yourdomain.com
. Bestätigen Sie und drücken Sie.cname
Einträge ein. Eine für die Wurzelspitze (@) und eine für www. Beide zeigen auf YOURusername.github.io
. Wenn Ihr DNS-Anbieter keine ALIAS
Einträge auf dem Stamm-Apex (@) unterstützt, erstellen Sie einfach A
Einträge, die auf 192.30.252.153
Und 192.30.252.154
Verweisen.Warten Sie, bis Ihre Nameserver aktualisiert sind:
Dig yourdomain.com +nostats +nocomments +nocmd
Die Dokumentation ist ein wenig verwirrend, wenn es um Projektseiten geht , im Gegensatz zu Benutzerseiten . Es fühlt sich an, als müssten Sie mehr tun, aber der Prozess ist sehr einfach.
Es involviert:
Ihr Inhalt wird über eine URL der Form 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 Umleitung beachtet, 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 also geöffnet sind, können Sie so viele haben, wie Sie möchten.
Hier ist der Prozess:
Zeigen Sie für die A-Datensätze mit @ auf die folgenden IP-Adressen:
@: 185.199.108.153
@: 185.199.109.153
@: 185.199.110.153
@: 185.199.111.153
Dies sind die statischen Github-IP-Adressen, über die Ihre Inhalte bereitgestellt werden.
Zeigen Sie für den CNAME-Eintrag www auf yourusername.github.io. Beachten Sie den nachlaufenden Punkt. Beachten Sie auch, dass dies der Benutzername ist, nicht der Projektname . 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.
www: forwardadvance.github.io.
Der Zweck des CNAME besteht darin, den gesamten Datenverkehr der WWW-Subdomain auf eine GitHub-Seite umzuleiten, die 301 zur nackten Domain umleitet.
Hier ist ein Screenshot der Konfiguration, die ich für meine eigene Site verwende http://nicholasjohnson.com :
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 Push.
z.B.
nicholasjohnson.com
Diese Datei weist GitHub an, dieses Repo zu verwenden, um den Datenverkehr zu dieser Domain zu verarbeiten.
Warten Sie nun 5 Minuten, Ihre Projektseite sollte nun online sein.
Wenn Sie sich fragen, wie Ihre Domain als
www.mydomain.com
Angezeigt werden soll, anstatt diewww
-Anforderung anmydomain.com
Umzuleiten, versuchen Sie Folgendes:
CNAME-Datei auf gh-pages Zweig wird eine Zeile haben:
www.mydomain.com
(Anstelle von mydomain.com
)
Egal, wie Sie die Umleitung bevorzugen (mit anderen Worten, egal, was sich in Ihrer CNAME-Datei im gs-pages-Zweig befindet), mit Ihrem DNS-Provider sollten Sie dies folgendermaßen einrichten:
A @ 192.30.252.154
A @ 192.30.252.153
CNAME www username.github.io
Diese detaillierten Erklärungen sind großartig, aber die (und meine) Verwirrung des OP könnte mit einem Satz behoben werden: "Direktes DNS zu Ihrem GitHub -Nutzernamen oder Organisation, Ignorieren des spezifischen Projekts und Hinzufügen der entsprechenden CNAME -Dateien in Ihren Projekt-Repositorys: GitHub sendet das richtige DNS an das richtige Projekt basierend auf Dateien im -Repository. "
Ab dem 29. August 2013 Githubs Dokumentation behaupten, dass:
Warnung: Projektseiten-Unterpfade wie http://username.github.io/projectname werden nicht an die benutzerdefinierte Domäne eines Projekts umgeleitet.
Nach einigem Frust habe ich festgestellt, dass Sie bei Verwendung von PairNIC lediglich die Einstellung "Web Forwarding" unter "Custom DNS" aktivieren und den Benutzernamen.github angeben müssen. io/project address und es werden automatisch sowohl die Apex- als auch die Subdomain-Datensätze für Sie eingerichtet. 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, es dauerte eine Weile, bis ich das herausgefunden hatte, also dachte ich, ich würde es teilen, um allen anderen die Mühe zu ersparen.
Ich möchte meine Schritte mitteilen, was ein bisschen anders ist als das, was rynop und superluminary bieten .
A
Record ist aber genau das gleicheCNAME
für www
zu erstellen, würde ich es vorziehen, es auf meine leere Domain umzuleiten (non-www
)Diese Konfiguration bezieht sich auf die Anleitung von Bevorzugte Domain . Die Domain-Einstellung von www
auf non www
Oder umgekehrt kann bei jedem Domain-Provider unterschiedlich sein. Da sich meine Domain unter GoDaddy befindet, setze ich sie unter Domain Setting mit Subdomain Forwarding (301).
Als Ergebnis des Verweises der Domain auf das Github-Repository werden dann alle URLs für die beiden Zweige master
und gh-pages
Angegeben, ähnlich wie die, die ich unten aufgeführt habe, für die bevorzugte Domain:
Meister
Indem Sie eine CNAME
-Datei in der master
-Verzweigung erstellen (überprüfen Sie diese in meinem user repository ).
http://hyipworld.github.io/
http://www.hyip.world/
http://hyip.world/
gh-pages
Indem Sie dieselbe CNAME
-Datei in der gh-pages
- Verzweigung erstellen (überprüfen Sie sie in meinem Projekt-Repository ).
http://hyipworld.github.io/maps/
http://www.hyip.world/maps/
http://hyip.world/maps/
Zusätzlich zu der obigen CNAME
-Datei müssen Sie möglicherweise Jekyll-Verarbeitung umgehen auf GitHub-Seiten erstellen, indem Sie eine Datei mit dem Namen .nojekyll
im Stammverzeichnis Ihrer Seiten repo.