Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

使用 GitHub Pages 作为 URL 缩短/重定向服务

Posted on 2025-08-12

由于 Goo.gl 的命运未卜,而且许多URL缩短/重定向服务要么价格昂贵,要么充斥着垃圾信息,所以我开始琢磨能否找到一种免费/便宜的方法来实现同样的效果。于是我注册了一个短域名 (CLXI.org),并尝试使用一个包含页面的 GitHub 代码库来重定向 URL。结果发现,这方法相当简单。

我把所有的技巧都整理到一个存储库中,你可以 fork 它并开始使用: https://github.com/codepo8/gh-pages-urlshortener
您可以在这里看到实际体验 – 其中之一: https ://codepo8.github.io/gh-pages-urlshortener/go/chris10s 或https://clxi.org/go/wad

在 GitHub 页面上重定向

为了从 GitHub 页面重定向任何页面,你需要加载正确的 gem 并进行设置。你可以在 `_config.yml` 文件中进行设置:


宝石:-jekyll-redirect-from
白名单: – jekyll-redirect-from
插件: – jekyll-redirect-from

如果你现在向页面添加一个名为“offwego.md”的 markdown 文件,你可以给它这个 Frontmatter 来重定向它:

 —-
重定向到:–https://christianheilmann.com—-

您可以在这里尝试: https://clxi.org/offwego 。

不过,这只是一个简单的服务器重定向——就像你在自己的服务器上做的一样。用户不会收到通知,也无法取消重定向。如果你希望取消重定向,那就没问题了。我想给用户更多选择。

构建具有预览功能的重定向

我没有在根文件夹中创建大量的 Markdown 文件,而是使用 /go/ 文件夹来存储它们。在 GitHub Pages 中,最好的方法是创建一个集合。我创建了一个名为“_go”的文件夹,并将其添加到“_config.yml”文件中:


收藏:
去:
输出:true

确保将“输出”设置为“true”。

现在我可以在那里添加很多 Markdown 文件了。为了让它们看起来更独特,并更好地控制重定向,我创建了一个模板文件。为此,我创建了一个 `_layouts` 文件夹,并在其中添加了一个 `redirection.html` 文件。 最终的模板有很多功能我们这里就不赘述了,但主要的技巧是让HTTP重定向在时间上( 位)和要跳转到的URL ()都变成一个变量:



这样,我现在可以在“_go”文件夹中添加 markdown 文件,并在 frontmatter 中定义要重定向到的时间和地点:

 —-
转到:https://christianheilmann.com
布局:重定向
延迟:10——

我选择“重定向”布局,“转到” URL作为我的 URL,并延迟十秒。

元重定向的功能就到此为止了。我还想添加一个预览进度条和一个取消重定向的功能。元重定向最烦人的地方之一就是无法取消。HTML规则至高无上,即使用 JavaScript 移除它也无济于事。

增加取消重定向的机会和其他一些有趣的功能

为了获得更精细的控制,我使用 JavaScript 进行重定向。这可能会造成问题,但能为用户提供更多选择。

该脚本没有什么神奇之处,我将数据从前言中导入:


让倒计时 = document.getElementById(“倒计时”);
让 bar = document.getElementById(“progressBar”);
让 full = bar.max;
让延迟 = ;
让间隔 = setInterval(() => {
延迟-;
倒计时.textContent = 延迟;
bar.value = 完整 - 延迟;
如果(延迟<= 0){
window.location.href = “”;
清除间隔(间隔);
}

}, 1000);
document.querySelector(“按钮”).addEventListener(“点击”, () => {
清除间隔(间隔);
document.querySelector(“部分”)。innerHTML =`

已取消重定向

您现在可以关闭此页面或转至
你自己。

`;
});

就这样,现在你可以看到链接的目的地,并且可以根据需要取消。无论在深色模式还是亮色模式下都可以。以下是进度条的实际效果:

带进度条的延迟重定向

取消重定向(这次显示灯光模式):

取消体验

欢迎随意在 GitHub 上分叉、添加评论和改进!

原文: https://christianheilmann.com/2025/08/11/using-github-pages-as-a-url-shortener-redirection-service/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Big Technology
  • Bits about Money
  • Brandon Skerritt
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • HeardThat Blog
  • Henrique Dias
  • Herman Martinus
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Li Haoyi
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Maggie Appleton
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mind Matters
  • Mostly metrics
  • Naval Ravikant
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steph Ango
  • Stephen Wolfram
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme