web-dev-qa-db-fra.com

Domaine personnalisé pour les pages de projet GitHub

J'ai une branche gh-pages dans l'un de mes http://github.com . Les pages du projet GitHub fonctionnent bien si je vais sur http://myuser.github.com/myrepo

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

Aide sur les pages GitHub dit de créer un enregistrement A et un enregistrement CNAME dans votre DNS. L’enregistrement A a du sens, mais je ne sais pas ce que l’enregistrement CNAME doit créer dans mon DNS.

Les documents gh-pages disent de créer un enregistrement CNAME pour 'charlie.github.com', qui est un référentiel de page utilisateur. Je n'ai pas de référentiel de page utilisateur - je ne dispose que d'un référentiel de projet et d'une branche gh-pages que je souhaite utiliser pour myexample.com et www.myexample.com.

Dois-je créer un référentiel de pages utilisateur pour pouvoir utiliser ma page de projet pour www.myexample.com et myexample.com?

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

J'ai envoyé un e-mail au support GitHub et leur réponse a été

Autant que je sache, vous ne pouvez pas faire pointer les deux pages vers les mêmes pages fantômes.

J'ai du mal à croire qu'ils soutiendraient uniquement les enregistrements A pour les pages de projet.

Quelqu'un a-t-il réussi à faire cela auparavant?

397
rynop

MISE À JOUR DU 23/01/19:

Les choses ont un peu changé (pour le mieux) depuis ma dernière réponse. Cette réponse mise à jour vous montrera comment configurer:

  1. Apex de la racine (exemple.com)
  2. Sous-domaine (www.example.com)
  3. HTTPS (facultatif mais fortement encouragé)

En fin de compte, toutes les demandes adressées à example.com seront redirigées vers https://www.example.com (ou http: // si vous choisissez de ne PAS utiliser HTTPS). J'utilise toujours www comme mon atterrissage final. Pourquoi ( 1 , 2 ) est pour une autre discussion.

Cette réponse est longue mais elle est pas compliquée . J'étais bavard pour plus de clarté, car les documents GitHub sur ce sujet ne sont ni clairs ni linéaires.

Étape 1: Activer les pages GitHub dans les paramètres GitHub

  1. Depuis votre repo, cliquez sur le bouton  languette
  2. Faites défiler jusqu'à la section GitHub Pages. Vous avez deux options: 
  3. Si vous choisissez master branch, /README.md sera considéré comme votre site Web index.html. Si vous choisissez master branch /docs folder, /docs/README.md sera considéré comme votre site Web index.html.
  4. Choisissez un thème.
  5. Attendez une minute pendant que GitHub publie votre site. Vérifiez que cela fonctionne en cliquant sur le lien en regard de Your site is ready to be published at.

Étape 2: Spécifiez le domaine personnalisé dans les paramètres GitHub.

Entrez votre nom de domaine personnalisé ici et appuyez sur save

C'est une étape subtile mais importante.

  • Si le domaine personnalisé que vous avez ajouté à votre site GitHub Pages est example.com, alors www.example.com sera redirigé vers example.com.
  • Si le domaine personnalisé que vous avez ajouté à votre site GitHub Pages est www.example.com, alors example.com sera redirigé vers www.example.com.

Comme mentionné précédemment, je recommande de toujours atterrir à www pour que je saisisse www.example.com comme illustré ci-dessus.

Étape 3: Créer des entrées DNS

Dans la console Web de votre fournisseur DNS, créez quatre enregistrements A et un CNAME.

  1. A Enregistrements pour @ (alias racine apex):

Certains fournisseurs DNS vous demanderont de spécifier @, d'autres (comme AWS Route35) vous laissez le sous-domaine vide pour indiquer @. Dans les deux cas, ceux-ci sont les enregistrements A à créer:

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
  1. Créez un enregistrement CNAME pour diriger www.example.com vers YOUR-GITHUB-USERNAME.github.io.

C'est la partie la plus déroutante.

Notez le YOUR-GITHUB-USERNAMEET NON le nom du dépôt GitHub! La valeur de YOUR-GITHUB-USERNAME est déterminée par ce graphique .

Pour un page utilisateur site (probablement ce que vous êtes), l'entrée CNAME sera username.github.io, par exemple: 

Pour un pages d'organisation site, l'entrée CNAME sera orgname.github.io, par exemple: 

Étape 5: Confirmer les entrées DNS

  1. Confirmez vos enregistrements A en exécutant Dig +noall +answer example.com. Il doit renvoyer les quatre adresses IP 185.x.x.x que vous avez entrées.

  2. Confirme votre enregistrement CNAME en exécutant Dig www.example.com +nostats +nocomments +nocmd. Il devrait retourner un CNAME YOUR-GITHUB-USERNAME.github.io

Cela peut prendre environ une heure pour que ces entrées DNS se résolvent/se propagent. Une fois cela fait, ouvrez votre navigateur à http://example.com et il devrait être redirigé sur http://www.example.com

Étape 6: Configuration SSL (HTTPS). Facultatif, mais fortement recommandé

Une fois que le domaine personnalisé a fonctionné, retournez aux paramètres du référentiel. Si vous avez déjà ouvert la page des paramètres, actualisez-la en toute sécurité.

S'il y a un message sous la case à cocher Enforce HTTPS, indiquant que le traitement est toujours en cours, vous devrez attendre. Vous devrez peut-être également appuyer sur le bouton save de la section Custom domain pour lancer le traitement Enforce HTTPS.

Une fois le traitement terminé, il devrait ressembler à ceci:

enter image description here

Il suffit de cliquer sur la case à cocher Enforce HTTPS et de pointer votre navigateur sur https://example.com. Il devrait être redirigé et ouvert https://www.example.com

C'EST ÇA!

GitHub tiendra automatiquement votre certificat HTTPS à jour ET devrait gérer l'apex vers www rediriger via HTTPS.

J'espère que cela t'aides!!

...

Ancienne réponse (avant le 23/01/19)

Alors je l'ai compris. James McLaughlin m'a donné le Nudge dont j'avais besoin.

Pour configurer un domaine personnalisé pour un référentiel gh-pages Project Pages prenant en charge www.votredomaine.com et votredomaine.com (en supposant que vous ayez déjà une branche gh-pages sur votre référentiel):

  1. Depuis votre dépôt de projet, branche gh-pages. Créez un fichier CNAME avec le contenu yourdomain.com. Commit puis Push.
  2. Dans votre gestionnaire DNS, configurez deux enregistrements cname. Un pour le sommet de la racine (@) et un pour le site www. Les deux pointent vers YOURusername.github.io. Si votre fournisseur DNS ne prend pas en charge les enregistrements ALIAS sur l'apex racine (@), créez simplement des enregistrements A pointant vers 192.30.252.153 et 192.30.252.154.
  3. Attendez que vos serveurs de noms se mettent à jour:

    Dig yourdomain.com +nostats +nocomments +nocmd

472
rynop

Vue d'ensemble

Le documentation est un peu déroutant lorsqu'il s'agit de pages de projet , par opposition à pages utilisateur . C'est comme si vous deviez en faire plus, mais en réalité, le processus est très facile.

Ça implique:

  1. Configuration de 2 enregistrements A statiques pour le domaine nu (sans www).
  2. Créer un enregistrement CNAME pour www qui pointe vers une URL GitHub. Cela gérera la redirection www pour vous.
  3. Création d'un fichier appelé CNAME (en majuscule) dans la racine de votre projet sur la branche gh-pages. Cela indiquera à Github l'URL à laquelle répondre.
  4. Attendez que tout se propage.

Ce que vous obtiendrez

Votre contenu sera servi à partir d'une URL de la forme http://nicholasjohnson.com .

Visiting http://www.nicholasjohnson.com renverra une redirection 301 vers le domaine nu.

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

Vous pouvez avoir une page de projet par référentiel. Ainsi, si vos dépôts sont ouverts, vous pouvez en avoir autant que vous le souhaitez.

Voici le processus:

1. Créer des enregistrements

Pour les enregistrements A, pointez @ les adresses IP suivantes:

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

Ce sont les adresses IP statiques Github à partir desquelles votre contenu sera diffusé.

2. Créer un enregistrement CNAME

Pour l'enregistrement CNAME, pointez www sur yourusername.github.io. Notez le point final de fuite. Notez aussi que c'est le nom d'utilisateur, pas le nom du projet . Vous n'avez pas encore besoin de spécifier le nom du projet. Github utilisera le fichier CNAME pour déterminer le projet à partir duquel le contenu sera diffusé.

par exemple.

www: forwardadvance.github.io.

Le but de CNAME est de rediriger tout le trafic des sous-domaines www vers une page GitHub qui sera redirigée vers le domaine nu.

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éez un fichier CNAME

Ajoutez 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.

par exemple.

nicholasjohnson.com

Ce fichier indique à GitHub d'utiliser ce dépôt pour gérer le trafic vers ce domaine.

4. attendre

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

237
superluminary

Si vous vous demandez comment faire en sorte que votre domaine apparaisse comme www.mydomain.com au lieu de rediriger la demande www vers mydomain.com, essayez ceci:

fichier CNAME sur gh-pages branche aura une ligne:

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

Peu importe vos préférences en matière de redirection (en d'autres termes, peu importe le contenu de votre fichier CNAME sur la branche gs-pages), avec votre fournisseur DNS, vous devez le configurer comme suit:

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

Réponse courte

Ces explications détaillées sont excellentes, mais la confusion du PO (et de mes) pourrait être résolue avec une phrase: "DNS direct vers votre GitHub nom d'utilisateur ou organisation, en ignorant le projet spécifique et ajoutez les fichiers CNAME appropriés dans les référentiels de votre projet: GitHub enverra le bon DNS au bon projet, en fonction des fichiers du ré référentiel "

15
Jim Pivarski

En date du 29 août 2013, documentation de Github affirme que:

Avertissement: Les sous-chemins des pages de projet tels que http://username.github.io/projectname ne seront pas redirigés vers le domaine personnalisé du projet.

13
Amio

Les choses sont beaucoup plus faciles de nos jours!

  1. Mettez à jour votre enregistrement de domaine Apex (@) vers un point

192.30.252.154

192.30.252.153

  1. Modifiez votre champ Custome domain dans les paramètres de votre dépôt Github.

enter image description here

  1. www et d'autres sous-domaines peuvent être mis à jour en tant que CNAME vers un domaine apex.
3
Rafaf Tahsin

Je viens de découvrir, après un peu de frustration, que si vous utilisez PairNIC , il vous suffit d'activer le paramètre "Web Forwarding" sous "Custom DNS" et de fournir le nom d'utilisateur.github. io/adresse du projet et il va automatiquement configurer les enregistrements apex et sous-domaine pour vous. Il semble faire exactement ce qui est suggéré dans la réponse acceptée. Cependant, il ne vous laissera pas faire exactement la même chose en ajoutant manuellement des enregistrements. Très étrange. Quoi qu'il en soit, il m'a fallu un certain temps pour comprendre cela, alors j'ai pensé partager pour sauver tout le monde.

2
Brandon Fosdick

Je voudrais partager mes pas qui est un peu différent de ce que propose 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 fait référence au guidage de domaine préféré . Le réglage de domaine de www à non www ou inversement peut être différent pour chacun des fournisseurs de domaine. Comme mon domaine est sous GoDaddy, donc sous Paramètre de domaine je le configure à l'aide de Transfert de sous-domaine (301).

En faisant pointer le domaine vers le référentiel Github, toutes les adresses URL de master et gh-pages seront alors similaires, comme celles que je viens d’énumérer ci-dessous, vont au domaine préféré:

maître

En créant le fichier CNAME sur la branche master (à vérifier sur mon référentiel utilisateur ).

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

gh-pages

En créant le même fichier CNAME sur la branche gh-pages (vérifiez-le sur mon référentiel de projet ).

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

En plus du fichier CNAME ci-dessus, vous devrez peut-être complètement contourner le traitement Jekyll sur GitHub Pages en créant un fichier nommé .nojekyll à la racine. de vos pages repo.

0
Chetabahana