У меня есть 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, и их ответ был
Насколько я знаю, нельзя одновременно указывать на одни и те же страницы.
Мне трудно поверить, что они будут поддерживать записи A только для страниц проекта.
Кто-нибудь успешно делал это раньше?
Ответы:
23.01.19 ОБНОВЛЕНИЕ:
С момента моего последнего ответа все немного изменилось (в лучшую сторону). Этот обновленный ответ покажет вам, как настроить:
В итоге все запросы
example.com
будут перенаправлены на https://www.example.com (или http: //, если вы решите НЕ использовать HTTPS). Я всегда использую вwww
качестве моей последней посадки. Почему ( 1 , 2 ), для другого обсуждения.Этот ответ длинный, но не сложный. Я был многословен для ясности, поскольку документы GitHub по этой теме не являются четкими или линейными.
Шаг 1: Включите страницы GitHub в настройках GitHub
GitHub Pages
раздела. У вас есть два варианта:master branch
будет относиться/README.md
к вашей сетиindex.html
. Выборmaster branch /docs folder
будет относиться/docs/README.md
к вашей сетиindex.html
.Your site is ready to be published at
Шаг 2: Укажите пользовательский домен в настройках GitHub
Введите здесь свое доменное имя и нажмите
save
:Это тонкий, но важный шаг.
example.com
,www.example.com
будет перенаправлен наexample.com
www.example.com
,example.com
будет перенаправлен наwww.example.com
.Как упомянуто ранее, я рекомендую всегда приземляться в,
www
таким образом я вошелwww.example.com
как показано выше.Шаг 3: Создайте записи DNS
В веб-консоли вашего DNS-провайдера создайте четыре
A
записи и однуCNAME
.A
Записи для@
(aka root apex):Некоторые провайдеры DNS попросят вас указать
@
, другие (например, AWS Route 53) оставят субдомен пустым для указания@
. В любом случае, они являютсяA
записи для создания:CNAME
запись, чтобы указать www.example.comYOUR-GITHUB-USERNAME.github.io
.Это самая запутанная часть.
Обратите внимание, что
YOUR-GITHUB-USERNAME
НЕ GitHub репо! ЗначениеYOUR-GITHUB-USERNAME
определяется этим графиком .Для сайта с пользовательскими страницами (скорее всего, вы),
CNAME
запись будетusername.github.io
, например:Для сайта страниц организации ,
CNAME
запись будетorgname.github.io
, например:Шаг 5: Подтвердите записи DNS
Подтвердите свои
A
записи, запустивdig +noall +answer example.com
. Он должен вернуть четыре185.x.x.x
IP-адреса, которые вы ввели.Подтверждает вашу
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
обработку.После завершения обработки это должно выглядеть так:
Просто установите
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 в вашем репо):
yourdomain.com
. Зафиксируйте затем нажмите.cname
записи. Один для корневого апекса (@) и один для www. Оба указывают наYOURusername.github.io
. Если ваш DNS-провайдер НЕ поддерживаетALIAS
записи в корневой вершине (@), просто создайтеA
записи, которые указывают на192.30.252.153
и192.30.252.154
Подождите, пока обновятся ваши серверы имен:
dig yourdomain.com +nostats +nocomments +nocmd
источник
204.232.175.78
в качестве IP-адреса.обзор
Документация немного запутанным , когда дело доходит до проекта страниц , в отличие от пользовательских страниц . Такое чувство, что вам нужно сделать больше, но на самом деле процесс очень прост.
Это включает в себя:
Что вы получите
Ваш контент будет обслуживаться с URL-адреса в форме http://nicholasjohnson.com .
Посещение http://www.nicholasjohnson.com вернет редирект 301 на голый домен.
Путь будет учитываться перенаправлением, поэтому трафик на http://www.nicholasjohnson.com/angular будет перенаправлен на http://nicholasjohnson.com/angular .
Вы можете иметь одну страницу проекта на репозиторий, поэтому, если ваши репозитории открыты, вы можете иметь столько, сколько захотите.
Вот процесс:
1. Создать записи
Для записей A укажите @ на следующие IP-адреса:
Это статические IP-адреса Github, с которых будет обслуживаться ваш контент.
2. Создайте запись CNAME
Для записи CNAME укажите www на yourusername.github.io. Обратите внимание на трейлинг-стоп. Обратите внимание, что это имя пользователя, а не имя проекта . Вам еще не нужно указывать название проекта. Github будет использовать файл CNAME чтобы определить, из какого проекта будет работать контент.
например
Цель CNAME - перенаправить весь трафик поддоменов www на страницу GitHub, которая будет перенаправлять 301 на пустой домен.
Вот скриншот конфигурации, которую я использую для своего собственного сайта http://nicholasjohnson.com :
3. Создайте файл CNAME
Добавьте файл с именем CNAME в корневой каталог вашего проекта в ветке gh-pages. Он должен содержать домен, который вы хотите обслуживать. Убедитесь, что вы совершаете и нажимаете.
например
Этот файл говорит GitHub использовать это хранилище для обработки трафика в этот домен.
4. Подождите
Теперь подождите 5 минут, страница вашего проекта должна быть активна.
источник
yourUserName.github.io.
CNAME файл на gh-страницах ветке будет иметь одну строку:
www.mydomain.com
(вместоmydomain.com
)Независимо от ваших предпочтений по перенаправлению (другими словами, независимо от того, что находится в вашем файле CNAME в ветке gs-pages), с вашим провайдером DNS вы должны настроить его следующим образом:
источник
Короткий ответ
Эти подробные объяснения хороши, но путаницу ОП (и мою) можно решить одним предложением: «Направьте DNS на имя пользователя или организацию GitHub , игнорируя конкретный проект, и добавьте соответствующие файлы CNAME в репозитории вашего проекта: GitHub отправит правильный DNS для правильного проекта на основе файлов в репозитории. "
источник
По состоянию на 29 августа 2013 г. документация Github утверждает, что:
источник
username.github.io/projectname
наwww.projectname.com
.Сейчас все намного проще!
источник
После небольшого разочарования я только что обнаружил, что если вы используете PairNIC , все, что вам нужно сделать, это включить настройку «Web Forwarding» в «Custom DNS» и указать адрес username.github.io/project. автоматически настроить записи apex и subdomain для вас. Похоже, он делает именно то, что предлагается в принятом ответе. Тем не менее, это не позволит вам сделать то же самое, добавив записи вручную. Очень странно. В любом случае, мне потребовалось некоторое время, чтобы понять это, поэтому я решил поделиться, чтобы избавить всех остальных от неприятностей.
источник
Я хотел бы разделить мои шаги , которые немного отличаются от того, что предлагают rynop и superluminary .
A
записи точно такой же ноCNAME
дляwww
я предпочел бы , чтобы перенаправить его в мой пустой домен (non-www
)Эта конфигурация относится к руководству предпочтительного домена . Настройка домена
www
дляnon www
или наоборот может отличаться для каждого из поставщиков домена. Так как мой домен находится под GoDaddy, поэтому в настройках домена я установил его с помощью переадресации субдомена (301).В результате указания домена на репозиторий Github он выдаст все URL-адреса как для, так
master
и дляgh-pages
ветви аналогично , как те , которые я перечислил ниже идет на основной домен:мастер
Создавая
CNAME
файл наmaster
ветке (проверьте это в моем пользовательском репозитории ).GH-страница
Создав тот же
CNAME
файл вgh-pages
ветке (проверьте это в моем репозитории проекта ).В дополнение к
CNAME
вышеуказанному файлу вам может потребоваться полностью обойти обработку Jekyll на страницах GitHub, создав файл с именем.nojekyll
в корне репозитория ваших страниц.источник