Пользовательский домен для страниц проекта GitHub - PullRequest
394 голосов
/ 31 января 2012

У меня есть ветка gh-pages в одном из моих репозиториев http://github.com.Страницы проекта GitHub работают нормально, если я захожу на http://myuser.github.com/myrepo

Я хочу настроить пользовательский домен (myexample.com), который будет обслуживать страницы этого проекта.Я хочу, чтобы и myexample.com, и www.myexample.com обслуживали эти страницы проекта.

страницы GitHub помогают сказать, чтобы сделать запись A и запись CNAME в вашемDNS.Запись A имеет смысл, но я не знаю, какую запись CNAME сделать в моем DNS.

В документах gh-pages говорится, что нужно сделать запись CNAME для charlie.github.com, которая являетсяхранилище страниц пользователя.У меня нет репозитория пользовательских страниц - у меня есть только репозиторий проекта и ветка gh-pages, которые я хочу использовать для myexample.com и www.myexample.com.

Нужно ли мне сделатьрепозиторий пользовательских страниц, чтобы я мог использовать свою страницу проекта для www.myexample.com и myexample.com?

Я бы просто попробовал, но я хочу убедиться, что это будет работать, как у меня уже естьwww.myexample.com живи и не хочу ошибаться.

Я написал поддержку GitHub по электронной почте, и он ответил:

Вы не можете одновременно указывать на один и тот же gh-страницы, насколько я знаю.

Мне трудно поверить, что они будут поддерживать записи A только для страниц проекта.

Кто-нибудь успешно делал это раньше?

Ответы [ 8 ]

469 голосов
/ 03 февраля 2012

1/23/19 ОБНОВЛЕНИЕ:

С момента моего последнего ответа все немного изменилось (в лучшую сторону).Этот обновленный ответ покажет вам, как настроить:

  1. Root Apex (example.com)
  2. Субдомен (www.example.com)
  3. HTTPS (необязательно, но настоятельно рекомендуется)

В конце концов все запросы к example.com будут перенаправлены на https://www.example.com (или http: //, если вы решите НЕ использовать HTTPS),Я всегда использую www в качестве моей последней посадки.Почему ( 1 , 2 ), для другого обсуждения.

Этот ответ длинный, но он не сложный.Я был многословен для ясности, поскольку документы GitHub по этой теме не являются четкими или линейными.

Шаг 1: Включите страницы GitHub в настройках GitHub

  1. В репозитории нажмите на image tab
  2. Scroll down to the GitHub Pages section. You have two options: image
  3. Choosing master branch will treat /README.md as your web index.html. Choosing master branch /docs folder will treat /docs/README.md as your web index.html.
  4. Choose a theme.
  5. Wait a minute while GitHub publishes your site. Verify it works by clicking on the link next to Your site is ready to be published at

Step 2: Specify custom domain in GitHub settings

Enter your custom domain name here and hit save: image

This is a subtle, but important step.

  • If the custom domain you added to your GitHub Pages site is example.com, then www.example.com will redirect to example.com
  • If the custom domain you added to your GitHub Pages site is www.example.com, then example.com will redirect to www.example.com.

As mentioned before, I recommend always landing at www so I entered www.example.com as pictured above.

Step 3: Create DNS entries

In your DNS provider's web console, create four A records and one CNAME.

  1. A Records for @ (aka root apex):

Some DNS providers will have you specify @, others (like AWS Route35) you will оставьте субдомен пустым , чтобы указать @.В любом случае это записи A для создания:

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
Создайте запись CNAME, чтобы указать www.example.com на YOUR-GITHUB-USERNAME.github.io.

Это самая запутанная часть.

Обратите внимание на YOUR-GITHUB-USERNAME NOT имя репозитория GitHub!Значение YOUR-GITHUB-USERNAME определяется на этом графике .

Для Пользовательских страниц сайта (скорее всего, кто вы), CNAME запись будет username.github.io, например: image

For a Organization pages site, CNAME entry will be orgname.github.io, ex: image

Step 5: Confirm DNS entries

  1. Confirm your A records by running dig +noall +answer example.com. It should return the four 185.x.x.x IP addresses you entered.

  2. Confirms your CNAME record by running dig www.example.com +nostats +nocomments +nocmd. It should return a CNAME YOUR-GITHUB-USERNAME.github.io

It may take an hour or so for these DNS entries to resolve/propagate. Once they do, open up your browser to http://example.com and it should re-direct to http://www.example.com

Step 6: SSL (HTTPS) Configuration. Optional, but highly recommended

After you have the custom domain working, go back to the repo settings. If you already have the settings page open, hard refresh the page.

If there is a message under the Enforce HTTPS checkbox, stating that it is still processing you will need to wait. You may also need to hit the save button in the Custom domain section to kick off the Enforce HTTPS processing.

Once processing is completed, it should look like this:

enter image description here

Просто установите флажок Enforce HTTPS и укажите в браузере https://example.com.Он должен перенаправить и открыть https://www.example.com

ЭТО ЭТО!

GitHub будет автоматически поддерживать ваш HTTPS-сертификат в актуальном состоянии И должен обрабатывать апекс до www перенаправления по HTTPS.

Надеюсь, это поможет !!

...

Старый (до 23.01.19) ответ

Так что я понял это. Джеймс Маклафлин дал мне толчок, который мне был нужен.

Чтобы настроить собственный домен для репозитория Project Pages gh-pages, который обрабатывает www.yourdomain.com и yourdomain.com (предполагается, что у вас уже естьветка gh-pages в вашем репо):

  1. Из репозитория вашего проекта, ветка gh-pages.Создайте файл CNAME с содержанием yourdomain.com.Подтвердите и нажмите.
  2. В вашем диспетчере DNS настройте две cname записи.Один для корневого апекса (@) и один для www.Оба указывают на YOURusername.github.io.Если ваш DNS-провайдер НЕ поддерживает ALIAS записи в корневой вершине (@), просто создайте A записи, которые указывают на 192.30.252.153 и 192.30.252.154
  3. Подождите, пока обновятся серверы имен:

    dig yourdomain.com +nostats +nocomments +nocmd

237 голосов
/ 13 марта 2014

Обзор

Документация немного сбивает с толку, когда речь идет о страницах проекта , в отличие от пользовательских страниц . Такое чувство, что вам нужно сделать больше, но на самом деле процесс очень прост.

Включает в себя:

  1. Настройка 2 статических A-записей для «голого» (без www) домена.
  2. Создание одной записи CNAME для www, которая будет указывать на URL GitHub. Это будет обрабатывать перенаправление www для вас.
  3. Создание файла с именем CNAME (заглавными буквами) в корневом каталоге вашего проекта в ветви gh-pages. Это сообщит Github, на какой URL отвечать.
  4. Подождите, пока все распространится.

Что вы получите

Ваш контент будет обслуживаться с URL-адреса формы http://nicholasjohnson.com.

При посещении http://www.nicholasjohnson.com будет возвращено перенаправление 301 в пустой домен.

При перенаправлении будет учитываться путь, поэтому трафик на http://www.nicholasjohnson.com/angular будет перенаправлен на http://nicholasjohnson.com/angular.

Вы можете иметь одну страницу проекта на репозиторий, поэтому, если ваши репозитории открыты, вы можете иметь столько, сколько захотите.

Вот процесс:

1. Создать записи A

Для записей A укажите @ по следующим ip-адресам:

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

Это статические IP-адреса Github, с которых будет обслуживаться ваш контент.

2. Создать запись CNAME

Для записи CNAME укажите www на yourusername.github.io. Обратите внимание на трейлинг-стоп. Обратите внимание, что это имя пользователя, а не имя проекта . Вам еще не нужно указывать название проекта. Github будет использовать файл CNAME file , чтобы определить, из какого проекта будет обрабатываться контент.

* * Например, одна тысяча пятьдесят шесть
www: forwardadvance.github.io.

Цель CNAME - перенаправить весь трафик поддоменов www на страницу GitHub, которая будет перенаправлять 301 на открытый домен.

Вот скриншот конфигурации, которую я использую для своего сайта http://nicholasjohnson.com:

A and CNAME records required for Github Static Pages

3. Создать файл CNAME

Добавьте файл с именем CNAME в корневой каталог вашего проекта в ветке gh-pages. Он должен содержать домен, который вы хотите обслуживать. Убедитесь, что вы зафиксировали и нажали.

* * Например, тысяча семьдесят-три
nicholasjohnson.com

Этот файл говорит GitHub использовать это хранилище для обработки трафика в этот домен.

4. Подождите

Теперь подождите 5 минут, страница вашего проекта должна быть активна.

21 голосов
/ 25 января 2016

Если вам интересно, как сделать так, чтобы ваш домен отображался как www.mydomain.com вместо перенаправления запроса www на mydomain.com, попробуйте это:

Файл CNAME на gh-страницах ветка будет иметь одну строку:

www.mydomain.com (вместо mydomain.com)

Независимо от ваших предпочтений по перенаправлению (другими словами, независимо от того, что находится в вашем файле CNAME в ветке gs-pages), с вашим провайдером DNS , вы должны настроить его следующим образом:

A      @    192.30.252.154
A      @    192.30.252.153
CNAME  www  username.github.io
15 голосов
/ 15 декабря 2016

Краткий ответ

Эти подробные объяснения хороши, но путаница ОП (и мое) может быть решена одним предложением: "Прямой DNS к вашему GitHub имя пользователя или организация, игнорирование конкретный проект и добавьте соответствующие CNAME файлы в свои репозитории проектов: GitHub отправит правильный DNS нужному проекту на основе файлов в репозитории . «

13 голосов
/ 29 августа 2013

По состоянию на 29 августа 2013 г. Документация Github утверждает, что:

Предупреждение: подпути страниц проекта, такие как http://username.github.io/projectname, не будут перенаправлены в пользовательский проектдомен.

3 голосов
/ 14 мая 2018

В наши дни все намного проще!

  1. Обновите запись домена Apex (@), чтобы указать

192.30.252.154

192.30.252.153

  1. Отредактируйте поле Пользовательский домен в настройках репозитория github.

enter image description here

  1. www и другие субдомены могут быть обновлены как CNAME для домена apex.
2 голосов
/ 22 октября 2014

Я только что обнаружил, после небольшого разочарования, что если вы используете PairNIC , все, что вам нужно сделать, это включить настройку «Web Forwarding» в «Custom DNS» и указать имя пользователя.github.io/project address, и он автоматически настроит для вас записи apex и subdomain.Похоже, он делает именно то, что предлагается в принятом ответе.Тем не менее, это не позволит вам сделать то же самое, добавив записи вручную.Очень странно.В любом случае, мне потребовалось время, чтобы понять это, поэтому я решил поделиться, чтобы избавить всех остальных от неприятностей.

0 голосов
/ 14 августа 2015

Я хотел бы поделиться моими шагами , что немного отличается от того, что предлагают rynop и superluminary .

  • для A Запись точно такая же, но
  • вместо создания CNAME для www Я бы предпочел перенаправить его на мой пустой домен (non-www)

Эта конфигурация относится к руководству предпочтительный домен . Настройка домена от www до non www или наоборот может отличаться для каждого из поставщиков домена. Так как мой домен находится под GoDaddy, поэтому в настройках Domain я установил его с помощью Переадресация субдоменов (301).

В результате указания домена на репозиторий Github он выдаст все URL-адреса для ветвей master и gh-pages, аналогичные тем, которые я перечислил ниже, и перейдет в предпочтительный домен:

мастер

Создав CNAME файл в ветке master (отметьте это в моем репозитории пользователя ).

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

gh-pages

Создав тот же файл CNAME в ветке gh-pages (отметьте это в моем репозитории проекта ).

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

В дополнение к указанному выше файлу CNAME вам может понадобиться полностью обойти обработку Jekyll на страницах GitHub, создав файл с именем .nojekyll в корне ваших страниц. Сделки рЕПО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...