【问题标题】:How do I set a redirect for my root index.html in jekyll?如何在 jekyll 中为我的根 index.html 设置重定向?
【发布时间】:2019-02-04 21:11:44
【问题描述】:

我有 jekyll-redirect-from 插件,但它只适用于不是我的根主页的页面。

例如,如果用户键入 www.mywebsite.com/index.html,我希望它重定向并将 URL 显示为 www.mywebsite.com

我能找到的所有内容都集中在博客文章和索引以外的其他页面上。有人遇到过这个问题吗?

【问题讨论】:

    标签: ruby jekyll jekyll-extensions


    【解决方案1】:

    您不需要重定向,因为www.mywebsite.com/index.htmlwww.mywebsite.com 是同一个页面。 (如果你转到www.mywebsite.com,浏览器默认只显示index文件。)

    您需要浏览器重写 URL,同时保持在同一页面上。您需要在网络服务器上执行此操作。

    .htaccess

    如果您的站点位于 Apache 服务器上并且您可以访问该服务器,则可以使用从 www.mywebsite.com/index.htmlwww.mywebsite.com.htaccess 文件到 rewrite the URL

    有在线 .htaccess 生成器 like this one 可以帮助您正确使用语法。

    rewriting URLs on nginx 网络服务器也有类似的方法。

    GitHub 页面

    如果您使用的是 GitHub Pages 之类的服务,则不能使用 .htaccess。一个免费的解决方法是使用 Netlify 来部署您的站点,因为您可以设置 redirects on Netlify。在 Netlify 上创建一个免费帐户并从 GitHub 添加一个新站点。

    在你的 repo 的根目录中,创建一个包含以下内容的 netlify.toml 文件:

    # Redirect /index.html to /
    [[redirects]]
      from = "/index.html"
      to = "/"
    

    Netlify 现在将处理该重定向。

    【讨论】:

    • 谷歌不考虑 www.mywebsite.com/index.html 和 www.mywebsite.com 不同的页面并将它们索引两次吗?我用的是github pages和jekyll,所以没有htaccess。
    • 我怀疑 Google 索引了两次,但我不能确定。我已经编辑了我的答案,以包含一个使用 Netlify 作为 GitHub Pages 的解决方法的选项。
    • 谢谢。我目前正在将 Jekyll 与 Github 页面一起使用,但我似乎无法让 redirect-from 插件在我的主页上工作,它只适用于子页面。为主页启用它似乎会在一个循环中发送它,它试图不停地转发给自己。我也尝试使用 Cloudflare,但这似乎也没有任何作用。
    • 您是否尝试过我的回答中描述的 Netlify 选项?正如我所解释的,您不需要重定向,您需要 URL 重写,这是另一回事,实际上并不重定向页面。
    • 我现在实际上正在努力。不得不摆脱我的 cloudflare,因为那会弄乱 DNS 设置。感谢您的建议!
    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多