网络上有很多可以公开使用的短链接网站,但由于被滥用或其他原因不适合作为稳定的服务来使用。
前段时间注册了域名 xvo.es ,还算短,打算弄个自用的链接缩短服务。尝试了一些可以自托管的短链接服务之后,我选择了 kutt 并使用了一段时间。然而 kutt 于我而言还是太「庞大」了,我想寻找一个更简单的链接缩短应用。
链接缩短程序运作原理是依靠 HTTP 重定向,那我们为什么不借助静态托管平台的批量重定向功能来实现呢?
灵感来自基于 C 语言的链接缩短程序 1,我们使用静态部署即可实现个人短链接服务
.
├── 404.html # 404 页面
├── _redirects # Cloudflare Pages 重定向配置
├── index.html # 主页面
├── lists.html # 短链接罗列页面
└── vercel.json # Vercel 重定向配置
项目地址: https://github.com/DejavuMoe/xvo.es
这是一个可自托管的最简单链接缩短程序,能实现我想要的简单特性:

程序很简单,本文以 Cloudflare Pages 和 Vercel 为例,理论上它适合其他各种支持批量 URL 重定向的静态托管平台
Cloudflare Pages 的单个项目支持 2,000 个静态重定向和 100 个动态重定向,每个重定向声明有 1,000 个字符的限制。格式错误的声明会被忽略。
Fork
项目源码,修改 _redirects 文件里的重定向规则,写法如下:
[源 URL] [目标 URL] [状态码]
# [状态码是可选的,默认 302]
- 302 临时重定向
- 301 永久重定向
比如:
/blog https://dejavu.moe 302
/pgp https://pgp.dejavu.moe 302
/github https://github.com/DejavuMoe 302
修改 lists.html 文件,这里罗列我们的短链接,你可以将自己使用的短链接写在这里,比如:
<pre><code>URL lists:<a href="/blog"> /blog </a>|<a href="/pgp"> /pgp </a>|<a href="/github"> /github </a>|<a href="/telegram"> /telegram </a>|<a href="/group"> /group </a></code></pre>
将修改后的项目部署到 Cloudflare Pages
Vercel 的单个项目最多支持 1,024 个重定向,源 URL 和目标 URL 的最大长度为 4,096
fork
项目源码,修改 vercel.json 文件里的重定向规则,写法如下:
{
"redirects": [
{
"source": "源 URL 1",
"destination": "目标 URL 1",
"permanent": false
},
{
"source": "源 URL 2",
"destination": "目标 URL 2",
"permanent": false
}
]
}
其中 permanent 可以为 true(永久重定向) 或 false(临时重定向),比如:
{
"redirects": [
{
"source": "/blog",
"destination": "https://dejavu.moe",
"permanent": false
},
{
"source": "/pgp",
"destination": "https://pgp.dejavu.moe",
"permanent": false
},
{
"source": "/github",
"destination": "https://github.com/MoeOffice/xvo.es",
"permanent": false
},
{
"source": "/telegram",
"destination": "https://t.me/dejavuBlog",
"permanent": false
},
{
"source": "/group",
"destination": "https://t.me/dejavuGroup",
"permanent": false
}
]
}
同理,修改 lists.html 文件里罗列的短链接,然后将项目部署到 Vercel 即可。
此外,如果服务使用顶级域名 (Apex Domain),比如 xvo.es,建议将 www.xvo.es 重定向到 xvo.es。Cloudflare 可以使用「页面规则」中的 Bulk Redirects Rules 实现, Vercel 可以直接在绑定域名里设置重定向,现在这个极其简单的个人短链接服务就可以使用啦。
参考资料
网络上有很多可以公开使用的短链接网站,但由于被滥用或其他原因不适合作为稳定的服务来使用。
前段时间注册了域名 xvo.es ,还算短,打算弄个自用的链接缩短服务。尝试了一些可以自托管的短链接服务之后,我选择了 kutt 并使用了一段时间。然而 kutt 于我而言还是太「庞大」了,我想寻找一个更简单的链接缩短应用。
链接缩短程序运作原理是依靠 HTTP 重定向,那我们为什么不借助静态托管平台的批量重定向功能来实现呢?
灵感来自基于 C 语言的链接缩短程序 1,我们使用静态部署即可实现个人短链接服务
.
├── 404.html # 404 页面
├── _redirects # Cloudflare Pages 重定向配置
├── index.html # 主页面
├── lists.html # 短链接罗列页面
└── vercel.json # Vercel 重定向配置
项目地址: https://github.com/DejavuMoe/xvo.es
这是一个可自托管的最简单链接缩短程序,能实现我想要的简单特性:

程序很简单,本文以 Cloudflare Pages 和 Vercel 为例,理论上它适合其他各种支持批量 URL 重定向的静态托管平台
Cloudflare Pages 的单个项目支持 2,000 个静态重定向和 100 个动态重定向,每个重定向声明有 1,000 个字符的限制。格式错误的声明会被忽略。
Fork
项目源码,修改 _redirects 文件里的重定向规则,写法如下:
[源 URL] [目标 URL] [状态码]
# [状态码是可选的,默认 302]
- 302 临时重定向
- 301 永久重定向
比如:
/blog https://dejavu.moe 302
/pgp https://pgp.dejavu.moe 302
/github https://github.com/DejavuMoe 302
修改 lists.html 文件,这里罗列我们的短链接,你可以将自己使用的短链接写在这里,比如:
<pre><code>URL lists:<a href="/blog"> /blog </a>|<a href="/pgp"> /pgp </a>|<a href="/github"> /github </a>|<a href="/telegram"> /telegram </a>|<a href="/group"> /group </a></code></pre>
将修改后的项目部署到 Cloudflare Pages
Vercel 的单个项目最多支持 1,024 个重定向,源 URL 和目标 URL 的最大长度为 4,096
fork
项目源码,修改 vercel.json 文件里的重定向规则,写法如下:
{
"redirects": [
{
"source": "源 URL 1",
"destination": "目标 URL 1",
"permanent": false
},
{
"source": "源 URL 2",
"destination": "目标 URL 2",
"permanent": false
}
]
}
其中 permanent 可以为 true(永久重定向) 或 false(临时重定向),比如:
{
"redirects": [
{
"source": "/blog",
"destination": "https://dejavu.moe",
"permanent": false
},
{
"source": "/pgp",
"destination": "https://pgp.dejavu.moe",
"permanent": false
},
{
"source": "/github",
"destination": "https://github.com/MoeOffice/xvo.es",
"permanent": false
},
{
"source": "/telegram",
"destination": "https://t.me/dejavuBlog",
"permanent": false
},
{
"source": "/group",
"destination": "https://t.me/dejavuGroup",
"permanent": false
}
]
}
同理,修改 lists.html 文件里罗列的短链接,然后将项目部署到 Vercel 即可。
此外,如果服务使用顶级域名 (Apex Domain),比如 xvo.es,建议将 www.xvo.es 重定向到 xvo.es。Cloudflare 可以使用「页面规则」中的 Bulk Redirects Rules 实现, Vercel 可以直接在绑定域名里设置重定向,现在这个极其简单的个人短链接服务就可以使用啦。
参考资料