从Github gh-pages永久重定向

时间:2011-03-14 18:20:03

标签: http redirect github jekyll github-pages

我想创建一个主页,目前,我认为Github的网页功能将满足我的需求。但是,我可能希望稍后切换到更全面的CMS /博客引擎。

是否可以从Github页面提供永久重定向(HTTP 301),以防我决定在保留所有旧URI的情况下将我的主页移动到其他位置?

4 个答案:

答案 0 :(得分:6)

我能推断的最好的是Github还没有添加这个。请参阅Tekkub response from April 2010 re:将其添加到功能请求列表中。另一条消息from another user in January建议使用META标记作为解决方法(可能不是一个好的解决方案)。

答案 1 :(得分:1)

为了用户的安全,GitHub Pages不支持客户服务器配置文件,如.htaccess或.conf。但是,使用Jekyll Redirect From插件,您可以自动将访问者重定向到更新的URL。

可以在此处找到更多信息:https://help.github.com/articles/redirects-on-github-pages/

答案 2 :(得分:0)

群发重定向布局技术

单个页面重定向包含在:https://stackoverflow.com/a/36846720/895245实际301似乎不可能。

如果你想大规模重定向:

http://you.github.io/some/path

为:

http://new_domain.com/some/path

执行以下操作。

离开之前

  • _layouts/default.html:默认布局

  • _config使用默认布局:

    defaults:
      -
        scope:
          path: ''
        values:
          layout: 'default'
    

离开后

  • 使用从Redirect from an HTML page派生的HTML重定向创建_layouts/redirect.html

    {% assign redir_to = site.new_domain | append: page.url %}
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>Redirecting...</title>
      <link rel="canonical" href="{{ redir_to }}"/>
      <meta http-equiv="refresh" content="0;url={{ redir_to }}" />
    </head>
    <body>
      <h1>Redirecting...</h1>
      <a href="{{ redir_to }}">Click here if you are not redirected.<a>
      <script>location='{{ redir_to }}'</script>
    </body>
    </html>
    
  • _config包含:

    defaults:
      -
        scope:
          path: ''
        values:
          layout: 'redirect'
    new_domain: 'http://new-domain.com/some/path
    
  • 使用符号链接替换每个非默认布局到redirect布局。这是这种技术中唯一丑陋的部分。我没有看到一个漂亮的非插件解决方案。

答案 3 :(得分:0)

是的,是的。很快,通过 setting a custom domain on your GitHub Pages settings 设置 CNAME 重定向。

当您希望通过自定义域提供 GitHub 页面时,通常会出现这种情况(假设用户尝试访问 https://kamarada.github.io/,然后浏览器重定向到 https://linuxkamarada.com/,但页面是确实在 GitHub 上)。

但它也适用于之前您的网站由 GitHub Pages 提供服务并移动到另一台服务器的情况,例如GitLab Pages(我想这也适用于例如 WordPress)。

查看this answer:用户尝试访问https://kamarada.github.io/,然后浏览器重定向到https://linuxkamarada.com/,但页面实际上在GitLab上。