510 votes

Domaine personnalisé pour les pages du projet GitHub

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

Je veux créer un domaine personnalisé (monexemple.com) qui servira à afficher les pages de ce projet. Je veux les deux myexample.com y www.myexample.com pour servir ces pages de projet.

Aide sur les pages GitHub dit de faire un enregistrement A et un enregistrement CNAME dans votre DNS. L'enregistrement A est logique, mais je ne sais pas quel enregistrement CNAME créer dans mon DNS.

El gh-pages Les docs disent de faire un CNAME pour 'charlie.github.com' qui est un dépôt de page utilisateur. Je n'ai pas de référentiel de page utilisateur - je n'ai qu'un référentiel de projet et un référentiel de page utilisateur. gh-pages que je veux utiliser pour myexample.com y www.myexample.com .

Dois-je créer un dépôt de pages utilisateur juste pour pouvoir utiliser ma page de projet pour www.myexample.com et monexemple.com ?

J'essaierais bien, mais je veux m'assurer que cela va fonctionner 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é la suivante

Pour autant que je sache, vous ne pouvez pas avoir les deux qui pointent vers les mêmes pages gh.

J'ai du mal à croire qu'ils ne prennent en charge que les enregistrements A pour les pages de projet.

Quelqu'un a-t-il déjà réussi à le faire ?

10 votes

J'ai mis en place lacewing-project.org avec juste un enregistrement A pointant vers 207.97.227.245 (pas d'enregistrement CNAME), et cela fonctionne bien. J'ai également placé un fichier appelé CNAME dans la racine de la branche gh-pages contenant le nom de domaine.

0 votes

Dans mon cas, le simple fait de placer le fichier CNAME dans la branche gh-pages a fait l'affaire, merci !

638voto

rynop Points 7818

MISE À JOUR DU 13 JANVIER 19 :

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

  1. Racine apex (exemple.com)
  2. Sous-domaine ( www.example.com )
  3. HTTPS (facultatif mais fortement encouragé)

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

Cette réponse est longue mais elle est no compliqué. J'ai été verbeux pour plus de clarté car les documents de GitHub sur ce sujet ne sont ni clairs ni linéaires.

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

  1. À partir de votre dépôt, cliquez sur l'icône onglet
  2. Faites défiler la page jusqu'à la GitHub Pages section. Vous avez deux options :
  3. Choisir master branch traitera /README.md comme votre site web index.html . Choix de master branch /docs folder traitera /docs/README.md comme votre site web index.html .
  4. Choisissez un thème.
  5. Attendez une minute pendant que GitHub publie votre site. Vérifiez qu'il fonctionne en cliquant sur le lien à côté de Your site is ready to be published at

Étape 2 : Spécifier le domaine personnalisé dans les paramètres de GitHub

Entrez votre nom de domaine personnalisé ici et cliquez sur save :

Il s'agit d'une étape subtile, mais importante.

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

Comme mentionné précédemment, je recommande de toujours atterrir à www J'ai donc saisi www.example.com comme illustré ci-dessus.

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

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

  1. A Records pour @ (aka Root apex) :

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

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

Consultez les documents de Github pour confirmer qu'il s'agit des IP les plus récentes.

  1. Créer un CNAME de l'enregistrement au point www.example.com a YOUR-GITHUB-USERNAME.github.io .

C'est la partie la plus déroutante.

Notez le YOUR-GITHUB-USERNAME PAS le nom du repo GitHub ! La valeur de YOUR-GITHUB-USERNAME est déterminé par ce tableau .

Pour un Pages utilisateur (ce que vous êtes très probablement), CNAME l'entrée sera username.github.io , ex :

Pour un Pages de l'organisation site, CNAME l'entrée sera orgname.github.io , ex :

Étape 5 : confirmer les entrées DNS

  1. Confirmez votre A en exécutant dig +noall +answer example.com . Il devrait retourner les quatre 185.x.x.x Les adresses IP que vous avez saisies.

  2. Confirmez votre CNAME en exécutant dig www.example.com +nostats +nocomments +nocmd . Il devrait renvoyer un CNAME YOUR-GITHUB-USERNAME.github.io

Cela peut prendre une heure ou plus pour que ces entrées DNS soient résolues/propagées. Une fois qu'elles le sont, ouvrez votre navigateur à http://example.com et il devrait être redirigé vers http://www.example.com

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

Après avoir fait fonctionner le domaine personnalisé, revenez aux paramètres du dépôt. Si la page des paramètres est déjà ouverte, rafraîchissez-la.

S'il y a un message sous le Enforce HTTPS en indiquant qu'il est en cours de traitement et que vous devez attendre. Vous devrez peut-être aussi cliquer sur le bouton save dans la section Custom domain pour donner le coup d'envoi de la Enforce HTTPS traitement.

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

enter image description here

Il suffit de cliquer sur le Enforce HTTPS et faites pointer votre navigateur vers https://example.com . Il devrait rediriger et ouvrir https://www.example.com

C'EST ÇA !

GitHub gardera automatiquement votre certificat HTTPS à jour ET devrait gérer l'apex pour www rediriger sur HTTPS.

J'espère que cela vous aidera !

14 votes

En date du 19 avril 2012, La documentation de GitHub utilise 204.232.175.78 comme l'adresse IP.

0 votes

Je reçois un nom d'hôte invalide pour 204.232.175.78.

0 votes

Je pense qu'il est également possible de mettre en place un CNAME qui pointe vers la racine.

256voto

superluminary Points 5496

Vue d'ensemble

El documentation est un peu confus quand il s'agit de pages du projet par opposition à pages utilisateur . On a l'impression qu'il faut en faire plus, mais en fait le processus est très simple.

Cela implique :

  1. Mise en place de 2 enregistrements A statiques pour le domaine nu (sans www).
  2. Création d'un enregistrement CNAME pour www qui pointera vers une URL GitHub. Cela permettra de gérer la redirection vers www pour vous.
  3. Créer un fichier appelé CNAME (en majuscules) dans votre projet Root sur la branche gh-pages. Cela indiquera à Github à quelle URL répondre.
  4. Attendez que tout se propage.

Ce que vous obtiendrez

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

Visite du site http://www.nicholasjohnson.com renverra une redirection 301 vers le domaine nu.

Le chemin sera respecté par la redirection, ainsi 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 vos dépôts sont ouverts, vous pouvez en avoir autant que vous le souhaitez.

Voici le processus :

1. Créez des enregistrements A

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

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

Il s'agit des adresses IP statiques de Github à partir desquelles votre contenu sera servi.

2. Créer un enregistrement CNAME

Pour l'enregistrement CNAME, faites pointer www vers yourusername.github.io. Notez le point final. Notez aussi, il s'agit du nom d'utilisateur, et non du nom du projet . Vous n'avez pas encore besoin de spécifier le nom du projet. Github utilisera le CNAME fichier pour déterminer à partir de quel projet le contenu doit être diffusé.

par exemple

www: forwardadvance.github.io.

Le but du CNAME est de rediriger tout le trafic du sous-domaine www vers une page GitHub qui redirigera 301 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éer un fichier CNAME

Ajoutez un fichier appelé CNAME à votre projet Root dans la branche gh-pages. Il doit contenir le domaine que vous voulez servir. Assurez-vous de commiter et de pousser.

par exemple

nicholasjohnson.com

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

4. Attendez

Attendez maintenant 5 minutes, votre page de projet devrait maintenant être en ligne.

0 votes

Les instructions de Github indiquent "Warning : Vous ne devriez pas utiliser un enregistrement CNAME avec un domaine apex, car cela peut causer des problèmes avec d'autres services sur le domaine apex, comme le courrier électronique." N'est-ce pas ce que vous faites avec les enregistrements A et un CNAME dans votre fichier DNS ?

1 votes

Non, le domaine apex a une IP statique. Le sous-domaine www a le CNAME.

4 votes

@superluminary, j'ai répété votre processus, et j'ai deux problèmes, 1) j'utilise freeDNS afraid.org pour le partage de DNS, qui ne permet pas d'ajouter le trailing . dans username.github.io.. 2) lorsque j'ai ajouté l'url de github.io sans trailing ., mydomain.com fonctionne, mais je ne peux pas y accéder avec www.mydomain.com ? ?

15voto

Amio Points 81

En date du 29 août 2013, La documentation de Github prétendent que :

Avertissement : Les sous-chemins des pages du projet comme http://username.github.io/projectname ne seront pas redirigés vers le domaine personnalisé d'un projet.

3 votes

Je ne comprends pas pourquoi ils ont ajouté ce comportement. Je veux que mon .com pointe vers les pages github, et non l'inverse.

9 votes

J'étais aussi très confus à ce sujet. Comme je le comprends maintenant, vous pouvez toujours pointer yoursite.com vers les pages de github, mais yourusername.github.io/yoursite ne redirigera pas vers yoursite.com. Ce n'est pas grave car yoursite.com fonctionnera toujours, assurez-vous simplement de mettre à jour vos enregistrements dns et attendez que cela se résolve. aide.github.com/articles/

0 votes

Cela devrait avoir des ramifications SEO (Search Engine Optimization) pour le site web. Google rétrograderait le classement des résultats d'un contenu accessible à partir de plusieurs domaines, ce qui est l'une des nombreuses raisons d'appliquer des redirections 301 ("permanentes") à partir d'un site Web. username.github.io/projectname a www.projectname.com .

3voto

Brandon Fosdick Points 2037

Je viens juste de découvrir, après un peu de frustration, que si vous utilisez PairNIC Si vous êtes un utilisateur de l'Internet, tout ce que vous avez à faire est d'activer le paramètre "Web Forwarding" sous "Custom DNS" et de fournir l'adresse username.github.io/project et il configurera automatiquement les enregistrements apex et sous-domaine pour vous. Cela semble faire exactement ce qui est suggéré dans la réponse acceptée. Cependant, il ne vous permet pas de faire exactement la même chose en ajoutant manuellement des enregistrements. C'est très étrange. Quoi qu'il en soit, il m'a fallu un certain temps pour trouver cette solution, et j'ai donc pensé que je devais la partager pour épargner à tout le monde cette peine.

2voto

Adonis K. Points 1024

Il existe désormais un article de github qui vous guide à travers le processus

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X