GitHub项目页面的自定义域

GitHub项目页面的自定义域,github,dns,Github,Dns,我在我的一份回购协议中有一家分支机构。如果我转到 我想设置一个自定义域(myexample.com)来提供这个项目页面。我想同时myexample.com和www.myexample.com提供这些项目页面 表示在DNS中创建A记录和CNAME记录。A记录有意义,但我不知道在我的DNS中创建什么CNAME记录 gh页面文档说为用户页面存储库“charlie.github.com”创建一个CNAME记录。我没有用户页面存储库-我只有一个项目存储库和一个gh pages分支,我想用于myexampl

我在我的一份回购协议中有一家分支机构。如果我转到

我想设置一个自定义域(myexample.com)来提供这个项目页面。我想同时
myexample.com
www.myexample.com
提供这些项目页面

表示在DNS中创建A记录和CNAME记录。A记录有意义,但我不知道在我的DNS中创建什么CNAME记录

gh页面
文档说为用户页面存储库“charlie.github.com”创建一个
CNAME
记录。我没有用户页面存储库-我只有一个项目存储库和一个
gh pages
分支,我想用于
myexample.com
www.myexample.com

我是否需要创建一个用户页面存储库,以便使用www.myexample.com和myexample.com的项目页面

我只是想尝试一下,但我想确保这将工作,因为我已经有www.myexample.com生活,不想犯错误

我给GitHub支持部门发了电子邮件,他们的回复是

据我所知,你不能让两个指向同一页

我发现很难相信他们只支持项目页面的记录


以前有人成功地这样做过吗?

1/23/19更新:

自从我上次回答以来,情况有了很大的变化。此更新的答案将向您展示如何配置:

  • 根尖(example.com)
  • 子域()
  • HTTPS(可选但强烈鼓励)
  • 最后,对
    example.com
    的所有请求都将被重新定向到(或者http://如果您选择不使用HTTPS)。我总是使用
    www
    作为我的最终登陆。为什么(,),是另一个讨论

    这个答案很长,但并不复杂。为了清晰起见,我非常详细,因为关于这个主题的GitHub文档并不清晰或线性

    步骤1:在GitHub设置中启用GitHub页面
  • 从回购协议中,单击选项卡
  • 向下滚动至
    GitHub页面
    部分。您有两个选择:
  • 选择
    master branch
    /README.md
    视为您的网站
    index.html
    。选择
    master branch/docs文件夹
    /docs/README.md
    视为您的网站
    index.html
  • 选择一个主题
  • GitHub正在发布您的站点,请稍候。通过单击
    您的站点已准备好在
  • 步骤2:在GitHub设置中指定自定义域 在此处输入您的自定义域名,然后点击
    保存

    这是一个微妙但重要的步骤

    • 如果添加到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提供商的web控制台中,创建四条
    A
    记录和一条
    CNAME

  • A
    记录的
    @
    (也称为根顶点):
  • 某些DNS提供商将要求您指定
    @
    ,其他DNS提供商(如AWS Route 53)要求您指定
    @
    。在这两种情况下,
    A
    记录是否要创建:

    185.199.108.153
    185.199.109.153
    185.199.110.153
    185.199.111.153
    
    要确认这些是最新的IP

  • 创建一条
    CNAME
    记录,指向
    YOUR-GITHUB-USERNAME.GITHUB.io
  • 这是最令人困惑的部分

    注意
    YOUR-GITHUB-USERNAME
    而不是GITHUB repo名称!
    YOUR-GITHUB-USERNAME
    的值由确定

    对于用户页面站点(很可能是您所在的站点),
    CNAME
    条目将是
    username.github.io
    ,例如:

    对于组织页面站点,
    CNAME
    条目将是
    orgname.github.io
    ,例如:

    步骤5:确认DNS条目
  • 通过运行
    dig+noall+answer example.com
    确认您的
    A
    记录。它应该返回您输入的四个
    185.x.x.x
    IP地址

  • 通过运行
    dig www.example.com+nostats+nocomments+nocmd来确认您的
    CNAME
    记录。它应该返回一个
    CNAME YOUR-GITHUB-USERNAME.GITHUB.io

  • 解析/传播这些DNS条目可能需要一个小时左右。一旦他们这样做了,打开你的浏览器
    http://example.com
    并且它应该重新指向
    http://www.example.com

    步骤6:SSL(HTTPS)配置。可选,但强烈推荐 自定义域运行后,返回到repo设置。如果已打开“设置”页,请硬刷新该页

    如果在
    强制HTTPS
    复选框下有一条消息,说明它仍在处理中,您需要等待。您可能还需要点击
    自定义域
    部分中的
    保存
    按钮来启动
    强制HTTPS
    处理

    处理完成后,应如下所示:

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

    只需单击
    强制HTTPS
    复选框,并将浏览器指向
    https://example.com
    。它应该重新定向并打开
    https://www.example.com

    就这样! GitHub将自动更新您的HTTPS证书,并应通过HTTPS处理apex到
    www
    重定向

    希望这有帮助

    截至2013年8月29日,索赔:

    警告:像这样的项目页面子路径将不会重定向到项目的自定义域

    www: forwardadvance.github.io.
    
    nicholasjohnson.com
    
    A      @    192.30.252.154
    A      @    192.30.252.153
    CNAME  www  username.github.io
    
    CNAME www.example.com --> example.com  (WRONG)
    
    CNAME www.example.com --> username.github.io  (GOOD)
    
    CNAME www.example.com --> organization.github.io  (GOOD)