指南

如何搭建短链接服务

短链接服务会把一个很长的网址存储在一个短码之下,并将访问短链接的人重定向到原始地址。它的核心非常简单:一张数据表和一条重定向路由,因此它是经典的入门项目。真正让它变得实用的,是其余的部分:短域名、自定义别名、点击次数统计、修改链接指向,以及防止垃圾邮件发送者利用你的域名隐藏钓鱼链接。尽早决定它是只供你和团队使用,还是对公众开放,因为公开的短链接服务很快就会招来滥用。

短链接服务需要什么

数据

数据表字段
链接短码、目标网址、所有者、标题、创建日期、启用标记、可选的过期时间
点击所属链接、时间、来源页面、国家、设备类型
域名(可选)自定义短域名及其所有者

为短码建立唯一索引。两个链接使用相同的短码,是必须绝对避免的唯一一种错误。

页面与路由

  • 重定向路由 —— /{code} 查找短码并进行重定向。这是大多数访问者唯一会接触到的路由,因此它必须快速,并且绝不能显示你应用的界面。
  • 创建链接 —— 粘贴网址,可选择自定义别名,然后获得带复制按钮的短链接。
  • 链接列表 —— 你的链接,包含点击次数、搜索功能以及启用/停用开关。
  • 链接详情 —— 随时间变化的点击量、主要来源页面、国家、设备。可编辑目标地址。
  • 未找到页面 —— 用于显示未知或已停用的短码。
  • 二维码 —— 每条链接都可以生成,添加成本低,而且经常被需要。

决策与权衡

重定向类型。 301(永久)重定向可能会被浏览器缓存,因此回访者会跳过你的服务器:你会丢失点击数据,也无法为他们更改目标地址。如果你需要统计点击或允许编辑,请使用 302 或 307。大多数带统计功能的短链接服务都是这样做的。

短码。 由六到七个字符(字母和数字)组成的随机短码难以被猜到,并且有足够大的空间。如果人们需要手动输入链接,应避免容易混淆的字符(0/O、1/l)。按顺序生成的短码会暴露你拥有多少链接,并让任何人都能逐个遍历。

自定义别名。 /launch 比 /x7Kp2q 更好。应保留你的应用正在使用的词(login、api、admin),如果工具对外开放,还应屏蔽不当的别名,并决定别名是否区分大小写。不区分大小写对用户更友好。

速度。 短链接服务会在每次访问前增加一次跳转。应让重定向路由只执行一次有索引的查询,并且在发送重定向之后再记录点击(或在后台进行),这样统计就不会拖慢访问者的速度。托管在闲置时会休眠的环境中,应用在长时间无人访问后的首次访问可能会稍慢;对于个人或团队工具来说,这通常可以接受。

点击统计与隐私。 统计点击次数、来源页面和大致国家是常规做法。存储完整的 IP 地址并为个人建立画像,则会触发隐私法规的适用。只存储你真正会查看的内容,并尽可能进行汇总。参见如何为应用添加分析功能。

域名。 链接的简短程度取决于它的域名。购买一个短域名并将其指向应用——参见如何连接自定义域名。许多托管服务更倾向于使用子域名(go.yourbrand.com)而不是裸根域名,因为子域名更容易连接。

滥用。 如果任何人都能创建链接,垃圾邮件发送者就会利用你的域名伪装钓鱼和恶意软件,你的域名也可能被列入黑名单。对于公开的短链接服务,应要求注册账户,限制创建频率,使用 Google Safe Browsing 等恶意网址名单检查目标地址,屏蔽指向你自己短链接服务的链接(避免重定向循环),并建立一个管理员开关,能够立即停用任何链接。私有的、仅供团队使用的短链接服务可以避免大部分这些问题。

一个行之有效的首个提示词

为我的团队搭建一个短链接网页应用。已登录用户粘贴目标网址后,会获得一个随机的 7 字符短码(不含 0、O、1 或 l),或者可以选择自定义别名。别名需唯一且不区分大小写;保留 login、api、admin、app 和 settings。公开路由 /{code} 通过一次有索引的查询查找短码,并返回 302 重定向;记录点击(时间、来源页面、国家、设备类型——不记录完整 IP 地址),且记录操作不得延迟重定向。未知或已停用的短码显示一个简单的未找到页面。用户可以看到自己的链接列表(包含点击次数),可以编辑目标地址、停用链接、下载二维码,并可打开详情页查看每日点击量、主要来源页面和国家。验证目标地址必须是 http 或 https 网址,并且不能指向本短链接服务自身。所有数据存储在数据库中。

搭建步骤

  1. 创建与重定向。 创建一条链接,并在无痕窗口中打开。检查返回的是 302,而不是先加载页面再通过 JavaScript 跳转。
  2. 短码与别名。 尝试重复的别名、保留词、大小写混合的别名以及一个很长的网址。
  3. 点击追踪。 从几台设备上点击,检查次数和来源页面统计。
  4. 编辑与停用。 修改目标地址,确认旧的短链接现在会指向新地址;停用一条链接,确认它不再生效。
  5. 校验。 尝试 javascript: 链接、指向短链接服务自身的链接以及格式错误的网址。这些都应在服务器端被拒绝。
  6. 域名。 连接你的短域名,并在其上测试链接。
  7. 滥用防护(如果工具将对外公开):速率限制、目标地址检查,以及一个可以查看最近链接的管理员页面。

常见错误

  • 使用 301 重定向却还要统计点击。 浏览器会缓存这些重定向,你的数据就会出错。
  • 在页面中再进行重定向。 先加载应用,再用 JavaScript 跳转,每次点击都会感觉很慢。应在服务器端进行重定向。
  • 短码没有唯一约束。 冲突迟早会发生。
  • 没有任何控制措施的公开短链接服务。 它一定会被滥用,而你的域名信誉也会因此受损。
  • 接受任意的网址协议。 只允许 http 和 https 目标地址。
  • 迁移时丢失链接。 自己拥有短域名,这样即使更换托管服务,链接也能保持可用。

什么时候现成的产品是更好的选择

成熟的链接管理服务开箱即提供品牌域名、详细的分析、团队功能、二维码、集成和滥用处理。如果链接对你的营销至关重要,并且你不想维护任何东西,那就付费使用一个。

当你希望在自己的域名上拥有一个简单的团队短链接服务,且不需要按席位付费;当链接需要与你自己的产品相连(分享链接、推荐链接、邮件中的追踪链接);或者你希望完全掌控点击数据时,再考虑自建。它也是很好的第一个后端项目。可以将它与链接聚合页面搭配使用,并在向任何人开放之前,先完成 AI 构建应用的安全检查清单。

在 Mythex 上搭建

在 Mythex 中,你可以在对话里描述短链接服务,并在实时预览中测试重定向。当应用需要时,Mythex 会为链接和点击添加专用的数据库。已发布的应用及其数据库在闲置时会休眠,并在下次访问时唤醒,这使得一个不常使用的短链接服务运行成本很低。可以发布到 mythex.ai 链接;在 Pro 套餐中,你可以连接自己的短域名,也可以在 Mythex 内购买一个——参见自定义域名。短链接服务模板提供了一条现成的起始提示词,包含自定义别名和点击统计功能。

常见问题

短链接服务应该使用 301 还是 302 重定向?

301 告诉浏览器这次跳转是永久性的,因此浏览器可能会缓存它,下次直接跳过你的服务器,这意味着你会丢失点击数据,也无法修改链接指向。大多数需要统计点击或允许编辑的短链接服务使用 302 或 307 临时重定向。

短码是如何生成的?

可以是由字母和数字组成的随机字符串,并与已有的短码进行比对;也可以是将数据库 ID 以 62 进制编码。随机短码更难被猜到;按顺序生成的短码会暴露你有多少条链接。六到七个随机字符就能组合出数十亿种可能。

我需要短域名吗?

功能上不需要,但短链接服务的意义就在于提供简短、可信的链接。你自己拥有的短自定义域名还意味着,即使你更换托管服务,链接也能继续使用。

如何防止有人滥用公开的短链接服务?

要求注册后才能创建链接,对链接创建频率做限制,使用 Google Safe Browsing 等恶意网址名单检查目标地址,禁止将你自己的域名作为目标地址,并为自己准备一种快速停用链接的方法。

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 繁體中文(香港) 繁體中文(台灣)