发现新文章

895 字
4 分钟
完全免费!搭建一个自己的短链服务!
利用 Cloudflare Worker 和 GitHub,可以搭建一个纯静态、可自动维护的短链服务
AI参与度 Lv.2/3 人工主导,AI编写

作者主导结构和核心观点,正文部分内容由 AI 协助生成。

2026年1月15日 07:39:31
0 次

前言#

原本这篇内容更适合写进仓库的 README,因为它本质上就是一个简洁的自部署教程。不过在实际整理时,我发现如果强行拆成 GitHub Pages + Cloudflare Worker 的前后端分离方案,反而会增加不少额外工作。实际上,这个项目只需要一个 Cloudflare Worker 就能跑起来,所以干脆单独写成一篇文章,方便说明整体思路。

项目原理#

这个项目和上一篇短链项目的思路比较接近,不过整体做得更精简一些。

首先,这个项目把前后端逻辑合并到了同一套体系里。前端基本不做复杂校验,主要校验工作都放在后端处理,这样就不用在两个项目之间来回维护规则。

由于前端部分非常简单,只有两个 HTML 页面(一个用于创建短链,一个用于跳转),因此合并后也不会显得臃肿。

另外,这个项目不再依赖 Cloudflare 服务端提供的 301/302 重定向规则,因此也绕开了 2000 条静态重定向的数量限制。它的做法是:当 CDN 请求静态资源命中 404 时,回退到 404.html,再由其中的 JavaScript 负责查询短链规则并执行跳转,思路上有些类似 Nginx 的伪静态。

如果某个 pathname 没有命中任何规则,也会统一落到默认回退源,这样就能兼容类似 https://2x.nz/posts/pin/ --> https://blog.acofork.com/posts/pin/ 这样的场景。

创建短链的逻辑和上一个项目也比较相似:由 Worker 代理访问 GitHub,修改对应的 JS 文件并新增一条短链规则,然后推送到仓库。提交完成后会自动触发 Cloudflare Worker 的重新构建,稍等片刻后,新路径就能正常跳转。

最后,这个项目还支持有效期。实现方式也很直接:前端在创建短链时把过期时间一并传给后端,后端将其写入规则文件,再借助 GitHub Action 定时巡检并清理过期短链。

在哪搞个短链#

我的 2x.nz 是在 https://porkbun.com 购买的,价格大概是一年一百元左右。其他后缀也可以考虑,比如 .im.mk

正式搭建你的短链服务#

首先,Fork仓库

afoim
/
Static_Redirect_Group
Waiting for api.github.com...
00K
0K
0K
Waiting...

接下来,先修改一些硬编码内容。由于 Cloudflare Worker 在处理静态资源时不能直接使用环境变量,因此部分信息是直接写在 HTML 里的。你可以在所有 HTML 文件中搜索 afoim 并替换成自己的内容;如果你愿意,也可以额外增加一层配置,并在构建阶段注入这些值。

然后,请修改 js 文件夹中的短链规则,替换成你自己的配置。

再接着,创建一个 GitHub Token,只需要授予 repo 权限即可。

继续,绑定机密环境变量,使用 wrangler secret put XXX

变量名说明
GITHUB_TOKENghp_xxxx...刚才申请的 Token
GITHUB_OWNER你的GitHub用户名例如 afoim
GITHUB_REPOStatic_Redirect_Group你的仓库名
BASE_DOMAIN你的短链域名例如 u.2x.nz 或 Worker 的默认域名 xxx.workers.dev

完成这些配置后,访问 /_url 就可以开始创建短链了。

防护#

建议重点保护创建短链的入口,避免被滥刷。你可以使用 Cloudflare Turnstile、速率限制或其他方式进行防护。

在Cloudflare创建一个WAF规则

当传入请求匹配时…

(http.host eq "你的域名" and (
http.request.uri.path eq "/_url"
or http.request.uri.path wildcard "/api/*"
))

然后采取措施…

交互式质询

这篇文章是否对你有帮助?

发现错误或想要改进这篇文章?

在 GitHub 上编辑此页

文章修订历史 (3 次)

查看变更记录
2026年2月25日 22:23:08 818735a

feat(posts): 为所有文章添加AI摘要并支持AI类型提示块

2026年2月9日 07:50:52 f6e3e17

压缩图片

2026年1月15日 00:11:45 ca210a0

posts: 添加静态重定向组短链服务及相关文档

完全免费!搭建一个自己的短链服务!
作者
R-001
发布于
2026年1月15日 07:39:31
许可协议
CC BY-NC-SA 4.0