Пользовательский домен для страниц проекта GitHub

У меня есть ветвь 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 для страниц проекта.

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

Ответ 1

23.01.19 ОБНОВЛЕНИЕ:

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

  1. Корневая вершина (example.com)
  2. Поддомен (www.example.com)
  3. HTTPS (необязательно, но настоятельно рекомендуется)

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

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

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

  1. В репо нажмите на вкладку tVVrt.png
  2. Прокрутите вниз до раздела GitHub Pages. У вас есть два варианта: mwXnO.png
  3. При выборе master branch /README.md будет /README.md вашим веб- index.html. При выборе master branch/docs folder /docs/README.md будет /docs/README.md вашим веб- index.html.
  4. Выберите тему
  5. Подождите минуту, пока GitHub публикует ваш сайт. Убедитесь, что он работает, нажав на ссылку рядом с Your site is ready to be published at

Шаг 2: Укажите пользовательский домен в настройках GitHub

Введите здесь свое доменное имя и нажмите " save: s7Ib1.png

Это тонкий, но важный шаг.

  • Если пользовательским доменом, который вы добавили на свой сайт GitHub Pages, является example.com, то www.example.com будет перенаправлен на example.com
  • Если пользовательский домен, который вы добавили на свой сайт GitHub Pages, это www.example.com, то example.com будет перенаправлен на www.example.com.

Как упоминалось ранее, я рекомендую всегда заходить на www поэтому я зашел на www.example.com как показано выше.

Шаг 3. Создание записей DNS

В веб-консоли вашего DNS-провайдера создайте четыре записи A и одну CNAME.

  1. A Записи для @ (он же root apex):

Некоторые провайдеры DNS попросят вас указать @, другие (например, AWS Route35) оставят субдомен пустым, чтобы указать @. В любом случае, они являются A записи для создания:

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

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

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

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

Для сайта страниц организации запись CNAME будет orgname.github.io, например: Z290i.png

Шаг 5: Подтвердите записи DNS

  1. Подтвердите свои записи A, запустив dig +noall +answer example.com. Он должен вернуть четыре 185.xxx IP-адреса 185.xxx.

  2. Подтвердите свою запись CNAME, запустив dig www.example.com +nostats +nocomments +nocmd. Он должен вернуть CNAME YOUR-GITHUB-USERNAME.github.io

Разрешение/распространение этих записей DNS может занять около часа. Как только они это сделают, откройте ваш браузер на http://example.com и он должен перенаправить на http://www.example.com

Шаг 6: Конфигурация SSL (HTTPS). Необязательно, но настоятельно рекомендуется

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

Если под Enforce HTTPS есть сообщение о том, что оно все еще обрабатывается, вам придется подождать. Вам также может понадобиться нажать кнопку " save в разделе " Custom domain ", чтобы начать обработку Enforce HTTPS.

После завершения обработки это должно выглядеть так:

enter image description here

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

ВОТ И ВСЕ!

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

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

...

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

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

Чтобы настроить пользовательский домен для репозитория gh-pages Project 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

Ответ 2

обзор

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

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

  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 укажите @на следующие 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, чтобы определить, из какого проекта будет обрабатываться контент.

например

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 минут, страница вашего проекта должна быть активна.

Ответ 3

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

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

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

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

Сейчас все намного проще!

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

192.30.252.154

192.30.252.153

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

enter image description here

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

Ответ 7

Я только после некоторого разочарования обнаружил, что если вы используете PairNIC, все, что вам нужно сделать, это включить "Веб-переадресация" в разделе "Пользовательский DNS" и укажите адрес username.github.io/project, и он автоматически настроит для вас как вершины, так и субдомены. Кажется, он делает то, что было предложено в принятом ответе. Тем не менее, это не позволит вам сделать то же самое, вручную добавив записи. Очень странно. Во всяком случае, мне потребовалось некоторое время, чтобы понять это, поэтому я решил поделиться с вами, чтобы спасти всех остальных.

Ответ 8

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

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

Эта конфигурация относится к руководству предпочтительный домен. Настройки домена от www до non www или наоборот могут отличаться для каждого из поставщиков домена. Поскольку мой домен находится под GoDaddy, поэтому в настройке домена я установил его с помощью Subdomain Forwarding (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 в корневом репозитории ваших страниц.