Mam gh-pages
oddział w jednym z moich repozytoriów http://github.com . Strony projektu GitHub działają dobrze, jeśli wejdę na http://myuser.github.com/myrepo
Chcę skonfigurować domenę niestandardową (myexample.com), która będzie obsługiwać strony tego projektu. Chcę oba myexample.com
i www.myexample.com
służyć tym stronom projektu.
Strony GitHub pomagają napisać rekord A i CNAME w twoim DNS. Rekord A ma sens, ale nie wiem, jaki rekord CNAME należy wykonać w moim DNS.
Dokumenty gh-pages
mówią, że należy utworzyć CNAME
rekord dla „charlie.github.com”, który jest repozytorium strony użytkownika. Nie mam repozytorium strony użytkownika - mam tylko repozytorium projektu i gh-pages
gałąź, z której chcę korzystać myexample.com
i www.myexample.com
.
Czy muszę utworzyć repozytorium strony użytkownika, aby móc korzystać ze strony projektu dla www.myexample.com i myexample.com?
Chciałbym tylko spróbować, ale chcę się upewnić, że to zadziała, ponieważ mam już www.myexample.com na żywo i nie chcę popełnić błędu.
Wysłałem e-mail do pomocy technicznej GitHub, a ich odpowiedź brzmiała:
O ile mi wiadomo, oba nie mogą wskazywać na te same strony gh.
Trudno mi uwierzyć, że będą obsługiwać tylko rekordy A dla stron projektu.
Czy ktoś wcześniej to zrobił?
Odpowiedzi:
AKTUALIZACJA 1/23/19:
Od czasu mojej ostatniej odpowiedzi wiele się zmieniło (na lepsze). Ta zaktualizowana odpowiedź pokaże, jak skonfigurować:
Na koniec wszystkie żądania
example.com
zostaną przekierowane na https://www.example.com (lub http: // jeśli zdecydujesz się NIE używać HTTPS). Zawsze używamwww
jako ostatniego lądowania. Dlaczego ( 1 , 2 ) jest na kolejną dyskusję.Ta odpowiedź jest długa, ale to jest nie skomplikowana. Mówiłem jasno, ponieważ dokumenty GitHub na ten temat nie są jasne ani liniowe.
Krok 1: Włącz strony GitHub w ustawieniach GitHub
GitHub Pages
sekcji. Masz dwie opcje:master branch
będzie traktowany/README.md
jak twoja siećindex.html
. Wybórmaster branch /docs folder
będzie traktowany/docs/README.md
jak twoja siećindex.html
.Your site is ready to be published at
Krok 2: Określ domenę niestandardową w ustawieniach GitHub
Wpisz tutaj swoją niestandardową nazwę domeny i naciśnij
save
:To jest subtelny, ale ważny krok.
example.com
,www.example.com
przekieruje doexample.com
www.example.com
,example.com
przekieruje dowww.example.com
.Jak wspomniano wcześniej, polecam zawsze lądować na,
www
więc weszłamwww.example.com
jak na zdjęciu powyżej.Krok 3: Utwórz wpisy DNS
W konsoli internetowej dostawcy DNS utwórz cztery
A
rekordy i jedenCNAME
.A
Rekordy dla@
(aka root root):Niektórzy dostawcy DNS będą Cię podawać
@
, inni (np. AWS Route 53) pozostawią subdomenę pustą, aby wskazać@
. W obu przypadkach są toA
rekordy utworzyć:CNAME
rekord, aby wskazać www.example.comYOUR-GITHUB-USERNAME.github.io
.To najbardziej myląca część.
Zwróć uwagę na
YOUR-GITHUB-USERNAME
NIE nazwę repozytorium GitHub! WartośćYOUR-GITHUB-USERNAME
określa ta tabela .W przypadku strony użytkownika (najprawdopodobniej kim jesteś),
CNAME
wpis będzieusername.github.io
, np .:Na stronach Organizacji miejscu,
CNAME
wejście będzieorgname.github.io
, ex:Krok 5: Potwierdź wpisy DNS
Potwierdź swoje
A
rekordy, uruchamiającdig +noall +answer example.com
. Powinien zwrócić cztery185.x.x.x
wprowadzone adresy IP.Potwierdza Twój
CNAME
rekord, uruchamiającdig www.example.com +nostats +nocomments +nocmd
. Powinien zwrócić aCNAME YOUR-GITHUB-USERNAME.github.io
Rozpoznanie / rozpowszechnienie tych wpisów DNS może potrwać około godziny. Gdy to zrobią, otwórz przeglądarkę
http://example.com
i powinna ona przekierować nahttp://www.example.com
Krok 6: Konfiguracja SSL (HTTPS). Opcjonalne, ale wysoce zalecane
Po uruchomieniu domeny niestandardowej wróć do ustawień repozytorium. Jeśli strona ustawień jest już otwarta, odśwież ją mocno.
Jeśli pod
Enforce HTTPS
polem wyboru znajduje się komunikat informujący, że nadal się przetwarza, musisz poczekać. Konieczne może być równieżsave
naciśnięcie przycisku wCustom domain
sekcji, aby rozpocząćEnforce HTTPS
przetwarzanie.Po zakończeniu przetwarzania powinno to wyglądać następująco:
Po prostu kliknij pole
Enforce HTTPS
wyboru i wskaż przeglądarkęhttps://example.com
. Powinien przekierować i otworzyćhttps://www.example.com
OTÓŻ TO!
GitHub automatycznie aktualizuje Twój certyfikat HTTPS ORAZ powinien obsłużyć wierzchołek, aby
www
przekierowywać przez HTTPS.Mam nadzieję że to pomoże!!
...
Stara (przed 1/23/19) odpowiedź
Więc to rozgryzłem. James McLaughlin dał mi szturchnięcie, którego potrzebowałem.
Aby skonfigurować niestandardową domenę dla repozytorium stron projektu gh-pages, które obsługuje strony www.twoja_domena.com i twoja_domena.com (zakładając, że masz już repozytorium strony gh-strony):
yourdomain.com
. Zatwierdź, a następnie wypchnij.cname
rekordy. Jeden dla wierzchołka głównego (@) i jeden dla www. Oba wskazują naYOURusername.github.io
. Jeśli Twój dostawca DNS NIE obsługujeALIAS
rekordów na wierzchołku głównym (@), po prostu utwórzA
rekordy wskazujące na192.30.252.153
i192.30.252.154
Poczekaj na aktualizację serwerów nazw:
dig yourdomain.com +nostats +nocomments +nocmd
źródło
204.232.175.78
jako adresu IP.Przegląd
Dokumentacja jest trochę mylące, jeśli chodzi o wystawać strony , w przeciwieństwie do stron użytkowników . Wydaje się, że powinieneś zrobić więcej, ale w rzeczywistości proces ten jest bardzo łatwy.
To wymaga:
Co dostaniesz
Twoje treści będą dostarczane z adresu URL formularza http://nicholasjohnson.com .
Odwiedzenie strony http://www.nicholasjohnson.com zwróci przekierowanie 301 do nagiej domeny.
Przekierowanie będzie przestrzegać ścieżki, więc ruch do http://www.nicholasjohnson.com/angular zostanie przekierowany na http://nicholasjohnson.com/angular .
Możesz mieć jedną stronę projektu na repozytorium, więc jeśli twoje repozytoria są otwarte, możesz mieć ich tyle, ile chcesz.
Oto proces:
1. Utwórz rekordy A.
W przypadku rekordów A wskaż @ na następujące adresy IP:
Są to statyczne adresy IP Github, z których będą dostarczane Twoje treści.
2. Utwórz rekord CNAME
W przypadku rekordu CNAME wskaż www na twoją nazwę użytkownika.github.io. Uwaga końcowy kropka. Pamiętaj również, że jest to nazwa użytkownika, a nie nazwa projektu . Nie musisz jeszcze określać nazwy projektu. Github użyje pliku CNAME do ustalenia, z którego projektu ma być wyświetlana zawartość.
na przykład
Celem CNAME jest przekierowanie całego ruchu subdomeny www na stronę GitHub, która 301 przekieruje do samej domeny.
Oto zrzut ekranu konfiguracji używanej dla mojej własnej witryny http://nicholasjohnson.com :
3. Utwórz plik CNAME
Dodaj plik o nazwie CNAME do katalogu głównego projektu w gałęzi gh-pages. Powinna zawierać domenę, którą chcesz obsługiwać. Upewnij się, że popełniasz i popychasz.
na przykład
Ten plik informuje GitHub, aby używał tego repozytorium do obsługi ruchu do tej domeny.
4. Poczekaj
Teraz poczekaj 5 minut, strona projektu powinna być już aktywna.
źródło
yourUserName.github.io.
Plik CNAME w gałęzi gh-pages będzie miał jedną linię:
www.mydomain.com
(zamiastmydomain.com
)Bez względu na preferencje dotyczące przekierowywania (innymi słowy, bez względu na to, co znajduje się w pliku CNAME w oddziale gs-pages), u usługodawcy DNS należy skonfigurować go w następujący sposób:
źródło
Krótka odpowiedź
Te szczegółowe wyjaśnienia są świetne, ale zamieszanie OP (i moje) można rozwiązać jednym zdaniem: „Skieruj DNS na nazwę użytkownika lub organizację GitHub , ignorując konkretny projekt i dodaj odpowiednie pliki CNAME do repozytoriów projektów: GitHub wyśle właściwy DNS do właściwego projektu na podstawie plików w repozytorium. ”
źródło
Według stanu na 29 sierpnia 2013 r . Dokumentacja Github twierdzi, że:
źródło
username.github.io/projectname
dowww.projectname.com
.W dzisiejszych czasach jest o wiele łatwiej!
źródło
Właśnie odkryłem, po odrobinie frustracji, że jeśli używasz PairNIC , wszystko, co musisz zrobić, to włączyć ustawienie „Web Forwarding” w „Custom DNS” i podać nazwę użytkownika.github.io/ project automatycznie skonfigurujemy dla Ciebie zarówno wierzchołek, jak i rekordy poddomeny. Wydaje się, że robi dokładnie to, co sugeruje zaakceptowana odpowiedź. Jednak nie pozwoli ci to zrobić dokładnie przez ręczne dodawanie rekordów. Bardzo dziwny. W każdym razie zajęło mi to trochę czasu, więc pomyślałem, że podzielę się, aby ocalić wszystkim innym kłopoty.
źródło
Chciałbym podzielić się moimi krokami, co nieco różni się od tego, co oferują rynop i superluminaria .
A
Record jest dokładnie taki sam, aleCNAME
dlawww
wolałbym przekierować go do mojej pustej domeny (non-www
)Ta konfiguracja odnosi się do wskazówek preferowanej domeny . Ustawienie domeny
www
nanon www
lub odwrotnie może być różne dla każdego dostawcy domeny. Ponieważ moja domena jest pod GoDaddy, więc w ustawieniach domeny ustawiłem ją za pomocą przekazywania subdomen (301).W wyniku skierowania domeny do repozytorium Github poda wszystkie adresy URL dla obu gałęzi
master
igh-pages
podobne, takie jak te wymienione poniżej, przechodzą do preferowanej domeny:mistrz
Tworząc
CNAME
plik wmaster
oddziale (sprawdź go w moim repozytorium użytkowników ).strony gh
Tworząc ten sam
CNAME
plik wgh-pages
oddziale (sprawdź go w moim repozytorium projektów ).Oprócz
CNAME
powyższego pliku może być konieczne całkowite pominięcie przetwarzania Jekyll na stronach GitHub przez utworzenie pliku o nazwie.nojekyll
w katalogu głównym repozytorium stron.źródło