GitHub proje sayfaları için özel alan adı


436

Bir var gh-pagesbenim birinde şube http://github.com repolar. Http://myuser.github.com/myrepo adresine gidersem GitHub proje sayfaları iyi çalışıyor

Bu proje sayfalarını sunacak özel bir alan (myexample.com) kurmak istiyorum. Her ikisini de istiyorum myexample.comve www.myexample.combu proje sayfalarını sunmak istiyorum .

GitHub sayfaları, DNS'nizde bir A kaydı ve CNAME kaydı yapmanıza yardımcı olur . A kaydı mantıklı, ancak DNS'imde ne CNAME kaydının yapılacağını bilmiyorum.

gh-pagesDocs bir hale getirmek için söylemek CNAMEbir kullanıcı sayfası havuzudur 'charlie.github.com' rekorunu. Bir kullanıcı sayfası depo yok - Sadece proje depo ve sahip gh-pagesben için kullanmak istediğiniz şube myexample.comve www.myexample.com.

Www.myexample.com ve myexample.com için proje sayfamı kullanabilmem için bir kullanıcı sayfası deposu oluşturmam gerekiyor mu?

Ben sadece denemek istiyorum, ama zaten www.myexample.com canlı ve bir hata yapmak istemiyorum gibi çalışacağından emin olmak istiyorum.

GitHub desteğine e-posta gönderdim ve yanıtları

Her ikisinin de bildiğim kadarıyla gh sayfalarına işaret edemezsiniz.

Sadece proje sayfaları için A kayıtlarını destekleyeceklerine inanmakta zorlanıyorum.

Bunu daha önce başarılı bir şekilde yapan var mı?


10
Ben kurdum lacewing-project.org sadece bir A kaydı (hayır CNAME kayıtları) 207.97.227.245 işaret ile ve bu cezayı çalışır. Ayrıca, etki alanı adını içeren gh-pages dalının köküne CNAME adlı bir dosya koydum.
James McLaughlin

Benim durumumda, sadece CNAME dosyasını gh-pages dalına yerleştirmek hile yaptı, teşekkür ederim!
jarandaf

Yanıtlar:


522

1/23/19 GÜNCELLEME:

Son cevabımdan bu yana işler biraz değişti (daha iyisi için). Bu güncellenmiş cevap size nasıl yapılandırılacağını gösterecektir:

  1. Kök tepe noktası (example.com)
  2. Alt alan adı (www.example.com)
  3. HTTPS (isteğe bağlı ancak şiddetle teşvik edilir)

Sonunda, tüm talepler https://www.example.com adresine (veya HTTPS'yi KULLANMAMAYI seçerseniz http: //) example.comyeniden yönlendirilecektir . Her zaman son inişim olarak kullanıyorum. Neden ( 1 , 2 ) başka bir tartışma içindir.www

Bu cevap uzun ama karmaşık değil . Bu konudaki GitHub belgeleri net veya doğrusal olmadığından netlik için ayrıntılı bir açıklama yaptım.

Adım 1: GitHub sayfalarında GitHub sayfalarını etkinleştirme

  1. Reponuzdan sekmesini tıklayın
  2. Bölüme ilerleyin GitHub Pages. İki seçeneğiniz var:
  3. Seçmek master branchwebiniz /README.mdgibi davranacaktır index.html. Seçmek master branch /docs folderwebiniz /docs/README.mdgibi davranacaktır index.html.
  4. Bir tema seç.
  5. GitHub sitenizi yayınlarken bir dakika bekleyin. Öğesinin yanındaki bağlantıyı tıklayarak çalıştığını doğrulayınYour site is ready to be published at

2. Adım: GitHub ayarlarında özel alan adı belirtin

Özel alan adınızı buraya girin ve tıklayın save:

Bu ince ama önemli bir adım.

  • Eğer GitHub Sayfalar sitesine eklenen özel etki alanı ise example.com, o zaman www.example.comyeniden yönlendirecekexample.com
  • GitHub Sayfaları sitenize eklediğiniz özel alan adı ise www.example.com, example.comadresine yönlendirilir www.example.com.

Daha önce de belirtildiği gibi, her zaman iniş yapmanızı tavsiye ederim, wwwböylece www.example.comyukarıda gösterildiği gibi girdim .

3. Adım: DNS girişleri oluşturma

DNS sağlayıcınızın web konsolunda dört Akayıt ve bir kayıt oluşturun CNAME.

  1. AKayıtlar @(diğer adıyla root apex):

Bazı DNS sağlayıcıları belirttiğiniz olacak @(AWS Rota 53 gibi) olacak, diğerleri alt alan boş bırakın belirtmek için @. Her iki durumda da bu vardır Aoluşturmak için kayıtlar:

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
  1. CNAMEWww.example.com adresini işaret edecek bir kayıt oluşturun YOUR-GITHUB-USERNAME.github.io.

Bu en kafa karıştırıcı kısım.

Not YOUR-GITHUB-USERNAME DEĞİL GitHub repo adını! Değeri bu grafikYOUR-GITHUB-USERNAME tarafından belirlenir .

Bir Kullanıcı sayfaları sitesi için (büyük olasılıkla bulunduğunuz yer), CNAMEgiriş username.github.io, ör.

Bir İçin Organizasyon sayfalar sitenin CNAMEgiriş olacak orgname.github.io, örn:

5. Adım: DNS girişlerini onaylayın

  1. AKayıtlarınızı çalıştırarak onaylayın dig +noall +answer example.com. 185.x.x.xGirdiğiniz dört IP adresini döndürmelidir .

  2. Kaydınızı CNAMEçalıştırarak onaylar dig www.example.com +nostats +nocomments +nocmd. Geri dönmeliCNAME YOUR-GITHUB-USERNAME.github.io

Bu DNS girişlerinin çözülmesi / çoğaltılması bir saat kadar sürebilir. Onlar yaptığınızda, tarayıcınızı açmak http://example.comve onu yeniden direkt gerektiğini etmekhttp://www.example.com

Adım 6: SSL (HTTPS) Yapılandırması. İsteğe bağlı, ancak şiddetle tavsiye edilir

Özel etki alanı çalıştıktan sonra repo ayarlarına geri dönün. Ayarlar sayfanız zaten açıksa sayfayı yenileyin.

Enforce HTTPSOnay kutusunun altında hala işlendiğini belirten bir mesaj varsa beklemeniz gerekir. İşlemi başlatmak saveiçin Custom domainbölümdeki düğmeye basmanız da gerekebilir Enforce HTTPS.

İşlem tamamlandıktan sonra şöyle görünmelidir:

resim açıklamasını buraya girin

Sadece Enforce HTTPSonay kutusunu tıklayın ve tarayıcınızı üzerine getirin https://example.com. Yeniden yönlendirmeli ve açmalıhttps://www.example.com

BU KADAR!

GitHub, HTTPS'nizi otomatik olarak güncel tutacaktır ve HTTPS wwwüzerinden yönlendirmek için apeksi ele almalıdır .

Bu yardımcı olur umarım!!

...

Eski (23.03.2019'dan önce) cevap

Ben de anladım. James McLaughlin bana ihtiyacım olan dürtüyü verdi.

Www.etkialaniniz.com.tr ve alanadiniz.com.tr adresinizi işleyen bir gh sayfaları Proje Sayfaları repo için özel bir etki alanı ayarlamak için (repoınızda zaten bir gh-sayfalar dalı bulunduğunu varsayar):

  1. Proje deponuzdan gh-sayfalar dalı. İçeriğiyle bir CNAME dosyası oluşturun yourdomain.com. Taahhüt et ve it.
  2. DNS yöneticinizde iki cnamekayıt oluşturun. Biri kök apeksi (@) ve diğeri www. İkisi de işaret ediyor YOURusername.github.io. DNS sağlayıcınız DESTEKLEMEZ Eğer ALIASkök ucundaki kayıtlarını (@), basitçe oluşturmak Akayıtları nokta bu 192.30.252.153ve192.30.252.154
  3. Ad sunucularınız güncellenene kadar bekleyin:

    dig yourdomain.com +nostats +nocomments +nocmd


14
Apr 19, 2012 itibarıyla Github belgelerine kullanımları 204.232.175.78IP adresi gibi.
Aseem Kishore

31
6 Şubat 2014'te kontrol edildi ve github dokümanları şöyle diyor: DNS adreslerini aşağıdaki IP adreslerini gösteren kayıtlar oluşturun: 192.30.252.153, 192.30.252.154.
Danny

2
"207.97.227.245 veya 204.232.175.78'e işaret eden bir A kaydı kullanıyorsanız, artık Sayfaları doğrudan bu sunuculardan sunmadığımız için DNS ayarlarınızı güncellemeniz gerekecek." help.github.com/articles/my-custom-domain-isn-t-working - 3/8/14
eddywashere

11
Naked @ alan adından CNAME kaydı ayarlamanın mümkün olduğunu düşünmüyorum. Bu nedenle açık alan adından www alt alan adına yönlendirmeyi işlemek için A kayıtlarına ihtiyacınız vardır. Herhangi bir cloudhost ile ilgili bir problem. Sabit bir IP garantisi yoktur.
superluminary

2
@rynop GoDaddy, @ ve www kullanıcı adınız.github.io'ya izin vermez, alt alan adı başına yalnızca bir CNAME kaydı :(
Tejas Manohar

241

genel bakış

Dokümantasyon o geldiğinde kafa karıştırıcı biraz sayfalarını proje aksine, kullanıcı sayfalarında . Daha fazlasını yapmanız gerektiği gibi geliyor, ama aslında süreç çok kolay.

O içerir:

  1. Açık (www yok) alan adı için 2 statik A kaydı ayarlama.
  2. Www için bir GitHub URL'sini gösterecek bir CNAME kaydı oluşturma. Bu, www yönlendirmesini sizin için halledecektir.
  3. Gh sayfaları dalında proje kökünüzde CNAME (büyük harf) adlı bir dosya oluşturma. Bu, Github'a hangi URL'ye yanıt verileceğini söyleyecektir.
  4. Her şeyin yayılmasını bekleyin.

Ne alacaksın

İçeriğiniz http://nicholasjohnson.com biçimindeki bir URL'den sunulacaktır .

Http://www.nicholasjohnson.com adresini ziyaret etmek, çıplak etki alanına 301 yönlendirmesini döndürür.

Yola yönlendirme saygı gösterecektir, bu nedenle http://www.nicholasjohnson.com/angular adresine giden trafik http://nicholasjohnson.com/angular adresine yönlendirilecektir .

Havuz başına bir proje sayfanız olabilir, bu nedenle depolarınız açıksa istediğiniz kadar sayfanız olabilir.

İşlem şu şekildedir:

1. A kayıtları oluşturun

A kayıtları için, @ adresini aşağıdaki ip adreslerine yönlendirin:

@: 185.199.108.153
@: 185.199.109.153
@: 185.199.110.153
@: 185.199.111.153

Bunlar, içeriğinizin sunulacağı statik Github IP adresleridir.

2. Bir CNAME Kaydı oluşturun

CNAME kaydı için www'yi kullanıcı adınızın.github.io adresine yönlendirin. Sondaki noktaya dikkat edin. Ayrıca bu proje adı değil, kullanıcı adıdır . Henüz proje adını belirtmenize gerek yok. Github, hangi projeden içerik sunulacağını belirlemek için CNAME dosyasını kullanacaktır .

Örneğin

www: forwardadvance.github.io.

CNAME'nin amacı, tüm www alt alan trafiğini çıplak etki alanına 301 yönlendirecek bir GitHub sayfasına yönlendirmektir.

İşte kendi sitem için kullandığım yapılandırmanın ekran görüntüsü http://nicholasjohnson.com :

Github Statik Sayfaları için A ve CNAME kayıtları gerekir

3. Bir CNAME dosyası oluşturun

Gh-pages dalındaki proje kökünüze CNAME adlı bir dosya ekleyin. Bu, sunmak istediğiniz alanı içermelidir. Taahhüt ettiğinizden ve ittiğinizden emin olun.

Örneğin

nicholasjohnson.com

Bu dosya GitHub'a bu repoyu bu etki alanına gelen trafiği işlemek için kullanmasını söyler.

4. Bekleyin

Şimdi 5 dakika bekleyin, proje sayfanız artık yayında olmalıdır.


1
Hayır, apeks alan adının statik bir IP'si vardır. Www alt etki alanında CNAME vardır.
superluminary

4
@superluminary, işleminizi tekrarladım ve iki sorunum var, 1) Firar eklemeye izin vermeyen DNS paylaşımı için freeDNS afraid.org kullanıyorum. username.github.io .. 2) i izlemeden github.io url eklediğimde, alanadim.com çalışıyor, ancak www.alanadim.com ile erişemiyorum ??
bistaumanga

4
GitHub dokümanları ile çözemediğim kısım, proje için hangi URL'yi kullanacağımdı. Bu cevap için teşekkürler: "bu proje adı değil, kullanıcı adı." so useyourUserName.github.io.
pkamb

1
Bu çözümü güncelledim ve gerçekten yapmanızı öneriyorum. Örneğin @ host için bir CNAME kullanarak başka şekillerde çalışmasını sağlayabilirsiniz, ancak e-postayı bozacaktır, vb. Bu bulduğum en iyi çözümdür. Teşekkür ederim.
Steven L.

1
Teşekkür ederim! DNS'deki CNAME kaydı için doğru değere saplandım - sadece organizasyon.github.io, hangi organizasyon altında hangi projeyi sunmaya çalıştığınıza bakılmaksızın. (ör. NOT organization.github.io/repo)
Özge

21

İsteğinizi www.mydomain.comyeniden yönlendirmek yerine alan adınızın nasıl görüneceğini merak ediyorsanız , şunu deneyin:wwwmydomain.com

Gh sayfaları dalındaki CNAME dosyasının bir satırı olacaktır:

www.mydomain.com(yerine mydomain.com)

Yeniden yönlendirme tercihiniz ne olursa olsun (başka bir deyişle, gs-pages dalındaki CNAME dosyanızda ne olursa olsun), DNS sağlayıcınızla şu şekilde ayarlamanız gerekir:

A      @    192.30.252.154
A      @    192.30.252.153
CNAME  www  username.github.io

@zwacky CNAME'yi neden @ adresine işaret edemiyorum? "www.alanadim.com" ve "alanadim.com" potansiyel olarak farklı IP'lere neden çözümlenmelidir?
aaa90210

19

Kısa cevap

Bu ayrıntılı açıklamalar harika, ancak OP (ve benim) karışıklığı tek bir cümleyle çözülebilir: "GitHub kullanıcı adınıza veya kuruluşunuza doğrudan DNS , belirli bir projeyi yok sayar ve proje depolarınıza uygun CNAME dosyalarını ekler : GitHub gönderir göre doğru projeye doğru DNS dosyaları içinde respository. "


1
"DNS gönderme" nin ne anlama geldiğini bilmiyorum.
ceving

DNS sorgularını yeniden yönlendirin, böylece belirli etki alanı adlarına sahip HTTP istekleri doğru belgeleri yanıt olarak alır.
Jim Pivarski

13

29 Ağustos 2013 itibariyle, Github'un belgeleri şunları iddia ediyor:

Uyarı: http://username.github.io/projectname gibi proje sayfaları alt yolları , projenin özel etki alanına yönlendirilmez.


3
Bu davranışı neden ekledikleri konusunda kafam karıştı. .Com'umun github sayfalarına işaret etmesini istiyorum, tersi değil.
Jordan

9
Bu beni gerçekten şaşırttı. Şimdi anladığım kadarıyla, sitenizi.com'u github sayfalarına yönlendirebilirsiniz, ancak kullanıcı adınız.github.io/yoursite siteniz.com'a yönlendirmez. Siteniz.com hala çalışmaya devam edecek, çünkü dns kayıtlarınızı güncellediğinizden ve bunun çözülmesini bekleyin. help.github.com/articles/…
eddywashere

Bu web sitesi için SEO (Arama Motoru Optimizasyonu) sonuçları olmalıdır. Google dan 301 ( "kalıcı") yönlendirmeleri uygulamak için çeşitli nedenlerinden biridir birden çok etki, erişilebilen içeriğin sıralamasında sonuçları yukarı veya aşağı söylenir username.github.io/projectnameiçin www.projectname.com.
BorromeanNot

3

Bugünlerde işler çok daha kolay!

  1. Apex alan adı (@) kaydınızı noktaya güncelleyin

192.30.252.154

192.30.252.153

  1. Düzenleyin Custome alanı sizin github repo ayarlarında alanı.

enter image description here

  1. www ve diğer alt alanlar, apex alan adına CNAME olarak güncellenebilir.

2

Biraz hayal kırıklığından sonra, PairNIC kullanıyorsanız , yapmanız gereken tek şeyin "Özel DNS" altında "Web Yönlendirme" ayarını etkinleştirmek ve kullanıcı adı.github.io/project adresini sağlamak olduğunu keşfettim. sizin için hem apeks hem de alt alan kayıtlarını otomatik olarak ayarlar. Kabul edilen cevapta tam olarak önerilenleri yapıyor gibi görünüyor. Ancak, kayıtları manuel olarak ekleyerek tam olarak aynı şeyi yapmanıza izin vermez. Çok ilginç. Her neyse, bunu çözmem biraz zaman aldı, bu yüzden diğer herkesi beladan kurtarmak için paylaşacağımı düşündüm.


0

Rynop ve superluminary tarafından sunulanlardan biraz farklı olan adımlarımı paylaşmak istiyorum .

  • çünkü AKayıt tamamen aynı ama
  • yerine yaratmanın CNAMEiçin www(benim boş alan adına yönlendirmek tercih ediyorum non-www)

Bu yapılandırma, tercih edilen etki alanının yönlendirilmesine atıfta bulunmaktadır . Etki alanı ayarı wwwiçin non wwwya da tam tersi alan adı sağlayıcıları her biri üzerinde farklı olabilir. Alan adım GoDaddy altında olduğundan, Alan Ayarı altında Alt Alan Yönlendirme (301) kullanarak ayarladım .

Github deposuna etki alanını işaret sonucunda, daha sonra her ikisinin için URL'lerin verecek masterve gh-pagesaşağıda sıralanan tercih edilen alan gider olanlar gibi benzer dalı:

usta

Şubede CNAMEdosya oluşturarak master( kullanıcı veri havuzumda kontrol edin ).

http://hyipworld.github.io/
http://www.hyip.world/
http://hyip.world/

gh-sayfaları

Aynı CNAMEdosyayı gh-pagesdalda oluşturarak ( proje havuzumda kontrol edin ).

http://hyipworld.github.io/maps/
http://www.hyip.world/maps/
http://hyip.world/maps/

Yukarıdaki CNAMEdosyaya ek olarak, sayfa deponuzun kökünde adlı bir dosya oluşturarak GitHub Sayfalarındaki Jekyll işlemeyi tamamen atlamanız gerekebilir .nojekyll.


3
Ben öneriyoruz değil godaddy, ama sadece kişisel görüş kullanmak
MMachinegun
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.