Domaine personnalisé pour les pages du projet GitHub

j'ai une branche gh-pages dans un de mes http://github.com repos. Les pages du projet GitHub fonctionnent très bien si je vais à http://myuser.github.com/myrepo

je veux configurer un domaine personnalisé (myexample.com) qui servira les pages de ce projet. Je veux que à la fois myexample.com et www.myexample.com servent ces pages de projet.

GitHub pages help dit de faire un enregistrement A et un enregistrement CNAME dans votre DNS. Le disque A a du sens, mais je ne sais pas quel disque CNAME faire dans mon DNS.

Le gh-pages docs-dire de faire un CNAME record "de charlie.github.com" qui est la page d'un utilisateur du référentiel. Je n'ai pas de dépôt de page Utilisateur - Je n'ai qu'un dépôt de projet et une branche gh-pages que je veux utiliser pour myexample.com et www.myexample.com .

Do Je dois faire un dépôt de page d'utilisateur juste pour que je puisse utiliser ma page de projet pour www.myexample.com et myexample.com Je ne sais pas.

je voudrais juste essayer, mais je veux m'assurer que cela fonctionnera comme je l'ai déjà www.myexample.com vivre et ne pas vouloir faire une erreur.

j'ai envoyé GitHub support et leur réponse était

vous ne pouvez pas avoir les deux pointer vers le même gh-pages autant que je sache.

j'ai du mal à croire qu'ils ne supporteraient qu'un enregistrement pour les pages de projet.

est-ce que quelqu'un a déjà réussi à faire ça?

371
demandé sur phwd 2012-01-31 19:50:13

8 réponses

donc j'ai compris. James McLaughlin m'a donné le coup de pouce dont j'avais besoin.

pour configurer un domaine personnalisé pour un projet de page gh-pages repo qui gère www.yourdomain.com et yourdomain.com (en supposant que vous avez déjà une branche gh-pages sur votre déclaration):

  1. de votre project repo, branche gh-pages. Créer un fichier CNAME avec le contenu yourdomain.com . S'engager ensuite pousser.
  2. dans votre DNS manager, Configuration de deux enregistrements cname . Un pour la racine apex ( @ ) et un pour www. Les deux pointent vers YOURusername.github.io . Si votre fournisseur DNS ne supporte pas les enregistrements ALIAS sur l'apex racine ( @ ), créez simplement des enregistrements A qui pointent vers 192.30.252.153 et 192.30.252.154
  3. attendez la mise à jour de vos serveurs de noms:

    dig yourdomain.com +nostats +nocomments +nocmd

424
répondu rynop 2017-05-23 11:47:29

vue d'ensemble

la documentation est un peu confuse quand il s'agit de pages de projet , par opposition à pages d'utilisateur . Il semble que vous devriez avoir à faire plus, mais en fait le processus est très facile.

cela implique:

  1. mise en place de 2 enregistrements statiques A pour le domaine naked (no www).
  2. créer un Enregistrement CNAME pour www qui pointera vers une URL GitHub. Ceci gérera la redirection www pour vous.
  3. création d'un fichier CNAME (en majuscules) dans la racine de votre projet sur la branche gh-pages. Cela indiquera à Github à quelle URL répondre.
  4. attendez que tout se propage.

Ce que vous obtenez

votre contenu sera servi à partir d'une URL du formulaire http://nicholasjohnson.com .

visite http://www.nicholasjohnson.com renvoie une redirection 301 vers le domaine nu.

le chemin sera respecté par la redirection, donc le trafic vers http://www.nicholasjohnson.com/angular sera redirigé vers http://nicholasjohnson.com/angular .

vous pouvez avoir une page de projet par dépôt, donc, si votre repos sont ouverts, vous pouvez en avoir autant que vous le souhaitez.

voici le processus:

1. Créer un enregistrement

pour les enregistrements A, point @ aux adresses ip suivantes:

@: 192.30.252.154
@: 192.30.252.153

ce sont les adresses IP GitHub statiques à partir desquelles votre contenu sera servi.

2. Créer un enregistrement CNAME

pour le record CNAME, point www à votre nom d'utilisateur.github.io. Notez l'arrêt arrière complet. Notez aussi, c'est le nom d'Utilisateur, pas le nom du projet . Vous n'avez pas encore besoin de préciser le nom du projet. Github utilisera le fichier de CNAME pour déterminer de quel projet il s'agit.

p.ex.

www: forwardadvance.github.io.

le but du CNAME est de rediriger tout le trafic du sous-domaine www vers une page GitHub qui redirige 301 vers le domaine naked.

voici une capture d'écran de la configuration que j'utilise pour mon propre site http://nicholasjohnson.com :

A and CNAME records required for Github Static Pages

3. Créer un fichier CNAME

Ajouter un fichier appelé CNAME à la racine de votre projet dans la branche gh-pages. Cela devrait contenir le domaine que vous voulez servir. Assurez-vous de vous engager et de pousser.

p.ex.

nicholasjohnson.com

ce fichier indique à GitHub d'utiliser ce repo pour gérer le trafic vers ce domaine.

4. Attendez

maintenant attendez 5 minutes, votre page de projet devrait maintenant être en direct.

230
répondu superluminary 2016-05-12 15:23:38

si vous vous demandez comment faire apparaître votre domaine comme www.mydomain.com au lieu de rediriger la demande www vers mydomain.com , essayez ceci:

CNAME fichier sur gh-pages branche aura une ligne:

www.mydomain.com (au lieu de mydomain.com )

peu importe votre préférence sur la redirection (en d'autres termes, peu importe ce qui est dans votre fichier CNAME sur la branche gs-pages), avec votre fournisseur DNS , vous devez le configurer comme ceci:

A      @    192.30.252.154
A      @    192.30.252.153
CNAME  www  username.github.io
20
répondu Phil 2017-04-29 09:28:33

en date du 29 août 2013, github's documentation claim that:

avertissement: les pages de projet sous-titres comme http://username.github.io/projectname ne sera pas redirigé vers le domaine personnalisé d'un projet.

13
répondu Amio 2013-08-29 09:03:49

réponse Courte

ces explications détaillées sont excellentes, mais la confusion de L'OP (et la mienne) pourrait être résolue avec une phrase: "DNS directs à votre GitHub nom d'utilisateur ou organisation, ignorant le projet spécifique, et ajouter le CNAME approprié fichiers dans vos dépôts de projet: GitHub enverra le DNS droit au bon projet basé sur Files in le respository .

13
répondu Jim Pivarski 2016-12-15 14:28:24

je viens de découvrir, après un peu de frustration, que si vous utilisez PairNIC , tout ce que vous avez à faire est d'activer le paramètre" Web Forwarding "sous" Custom DNS " et de fournir le nom d'utilisateur.github.io / project address et il configurera automatiquement les enregistrements apex et subdomain pour vous. Il semble faire exactement ce qui est suggéré dans la réponse acceptée. Cependant, il ne vous laisse pas faire exactement la même chose en ajoutant manuellement des enregistrements. Très étrange. De toute façon, il m'a fallu un moment pour comprendre ça, alors j'ai pensé que je partagerais pour éviter à tout le monde le problème.

2
répondu Brandon Fosdick 2014-10-21 23:34:02

les choses sont beaucoup plus faciles de nos jours!

  1. mise à Jour de votre Apex de domaine (@) enregistrement au point

192.30.252.154

192.30.252.153

  1. éditez votre champ Custome domain dans vos paramètres de repo github.

enter image description here

  1. www et d'autres sous-domaines peuvent être mis à jour en tant que CNAME vers le domaine apex.
1
répondu Rafaf Tahsin 2018-05-14 06:30:31

je voudrais partager mes pas ce qui est un peu différent de ce qui est offert par rynop et superluminaire .

  • pour A Record est exactement le même, mais
  • au lieu de créer CNAME pour www je préférerais le rediriger vers mon domaine vide ( non-www )

cette configuration se réfère aux indications de preferred domain . Le paramétrage de domaine de www à non www ou inversement peut être différent sur chacun des fournisseurs de domaine. Depuis mon domaine est sous GoDaddy, donc sous le domaine paramètre Je l'ai mis en utilisant le sous-domaine Forwarding (301).

comme résultat de pointant le domaine vers le dépôt Github, il donnera alors toutes les URLs de la branche master et gh-pages similaires à celles que j'ai énumérées ci-dessous va vers le domaine préféré:

maître

en créant CNAME fichier sur master branche (cochez sur mon référentiel utilisateur ).

http://hyipworld.github.io/

http://www.hyip.monde/

http://hyip.le monde/

gh-pages

en créant le même fichier CNAME sur la branche gh-pages (cochez sur mon project repository ).

http://hyipworld.github.io/maps/

http://www.hyip.monde / cartes/

http://hyip.le monde/cartes/

en plus du fichier CNAME ci-dessus, vous pouvez avoir besoin de complètement contourner le traitement Jekyll sur les Pages GitHub en créant un fichier nommé .nojekyll dans le racine de vos pages repo.

0
répondu Chetabahana 2017-05-23 12:10:47