如何使Github Pages的URL不区分大小写?

11

网站可以正常访问:
jerrygoyal.github.io/Flash-Clipboard

但以下网址无法访问(404错误):
jerrygoyal.github.io/flash-clipboard
jerrygoyal.github.io/FLASH-clipboard
jerrygoyal.github.io/flaSH-CLIPboard 等等
你明白我的意思! 如何使URL大小写不敏感?

我从未在Jekyll上工作过,也不确定我的项目页面是否在使用jekyll。 我只创建了一个index.html页面,并将其放入仓库的docs文件夹中。

我正在使用自定义域名(www.jerryfactory.com )映射到jerrygoyal.github.io


这是我的Github组织网站的URL:https://github.com/JerryGoyal/jerrygoyal.github.io

这是我的Github项目网站的URL: https://github.com/JerryGoyal/Flash-Clipboard/tree/master/docs

如果可能的话,我想将我的项目站点内容移动到我的Github组织网站上。 因此,如果URL大小写不敏感仅适用于组织网站,则没关系。


参考:Github中的组织和项目站点


请查看此链接:https://dev59.com/j4Pba4cB1Zd3GeqPrFkD - Marco
2
您可以设置重定向来处理大小写问题,将希望重定向到主URL的内容模拟为您想要的行为。 - Josh Adams
3个回答

17

如何使URL不区分大小写?

简短的回答是:目前在GitHub Pages上不可能实现


长话短说,URL区分大小写是Web标准,大多数Web服务器都会遵循这一点。这与Jekyll或任何类似工具无关,而是由为生成Jekyll HTML页面的Web服务器负责,在GitHub Pages的情况下,它们使用一个符合区分大小写URL的*nix-based Web服务器来定位资源。
解决此问题的常见方法是确保Jekyll中的页面始终为小写,从而生成小写URL。
这通常不应该成为问题,除非用户自己输入URL...在这种情况下,如果您想积极应对,可以使用jekyll-redirect-from插件,并创建重定向条目以覆盖您认为用户将尝试访问每个页面的最常见方式。
例如,将主URL设置为
  • augustoproiete.github.io/flash-clipboard

通过jekyll-redirect-from将下面的重定向到上面的主要内容。

  • augustoproiete.github.io/Flash-Clipboard
  • augustoproiete.github.io/FLASH-CLIPBOARD

正如我在问题中提到的,我对Jekyll一无所知。您介意告诉我如何进行更改吗? - GorvGoyl
@JerryGoyal 如何配置jekyll-redirect-from插件的所有说明都在README中 - https://github.com/jekyll/jekyll-redirect-from - C. Augusto Proiete
那个README文件中有一些我不理解的安装步骤,所以我按照https://help.github.com/articles/redirects-on-github-pages/ 中给出的步骤去做,但是没有成功。 - GorvGoyl
你确定重定向表单对于自定义静态页面有效吗? - GorvGoyl
这是我的组织邮件网站URL:https://github.com/JerryGoyal/jerrygoyal.github.io,这是我的项目网站URL/Flash-Clipboard:https://github.com/JerryGoyal/Flash-Clipboard/tree/master/docs。 - GorvGoyl
显示剩余2条评论

7

没有直接的方法使github页面URL区分大小写。但是,您可以使用以下技巧:

从404页面重定向到混合大小写或大写URL的小写URL。实现此目标的步骤如下:

  • 只需转到您的根存储库(your_username.github.io)。
  • 如果不存在,则创建一个404.html文件,并在其中添加以下脚本。
<script>
    window.onload = () => {
        currentURL = window.location.href;
        lowerCaseURL = currentURL.toLowerCase();
        if (currentURL != lowerCaseURL) {
            location.replace(lowerCaseURL);
        }
    };
</script>

注意:确保您的页面/仓库名称始终为小写。

示例说明逻辑:

如果您的URL是:

anmol53.github.io/bmi-tracker

而有人尝试以下URL:

anmol53.github.io/BMI-Tracker

默认情况下,他/她将收到404错误。现在,我们将使用上述脚本通过更改当前URL的大小写将其重定向到anmol53.github.io/bmi-tracker


老实说,那是一个很棒的黑客技巧。 - GorvGoyl

0

您无法使其区分大小写。抱歉,区分大小写的URL是Web标准。如果URL不区分大小写将会很酷,但事实并非如此。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接