Back to Main Site

MTShorter 模块:高性能短链接重定向

Last updated on Jun 24, 2026 00:44

优化链接共享和营销跟踪。 MTShorter 是一个高性能的 URL 缩短模块,专为 PolyCMS Repository 研发,旨在在统一 the 短命名空间下管理内部和外部链接重定向。后端采用 Laravel 构建,并在 GitHub 上完全开源。

核心特性

通过管理面板中的 短链接 管理和检查重定向记录:

1. YouTube 风格的随机 Slug 生成器

自动生成包含字母数字字符的简短、随机、安全的 Slug(例如 https://polycms.org/yqDlOmno),以实现快速共享。生成的默认长度可自定义(默认为 8 个字符)。

2. 自定义路径和预留路由验证

定义自定义个性化短链接(例如,创建一个类似于 https://polycms.org/yqDlOmno 的自定义短链接路径并将其指向目标 URL https://polycms.org/blog)。系统自动验证自定义输入,以防止与核心系统路径(如 adminapilogin 或预定义 URL 前缀)重复或冲突。

3. 多层深度缓存

专为高流量而设计。重定向控制器集成了请求缓存、共享缓存、负查找缓存和锁定逻辑以防止后端过载:

  • 正向缓存 TTL: 缓存已解析的短链接,以避免后续请求访问数据库。
  • 负向缓存 TTL: 缓存不存在的 Slug(例如 60 秒),以减轻恶意或无效请求对数据库的扫描压力。
  • 缓存锁: 针对并发请求的临时锁,以防止缓存在未命中时发生击穿(thundering herd 效应)。
  • 缓存抖动: 在 TTL 中添加随机时间,防止大量短链接的缓存同时失效。

4. 无头和外部目标重定向

动态链接到内部资源(例如单个帖子、页面或商品),并支持 ID 解析(即如果资源的 Slug 发生变化,短链接依然有效),或直接配置指向任意外部 URL 的路径。

5. 缓冲点击跟踪

使用缓冲计数器刷新的机制跟踪短链接的访问。点击次数将累积在缓存中,并在达到阈值(例如 20 次点击)时批量写入数据库,从而避免高并发下对数据库表的频繁写锁定。

6. 地理定位和详细分析

记录和分析点击事件以跟踪推广效果。该模块收集:

  • IP 地理定位: 使用 GeoLite2、ip-api.com、ipapi.co 或 ipinfo.io 等服务解析访问者的地理位置(国家、城市、ASN)。
  • 设备检测: 解析 User Agent 以分类浏览器、操作系统和设备类型(桌面、手机、平板电脑或爬虫)。
  • 流量来源: 识别并将流量分类为社交媒体、搜索引擎、内部、外部或直接访问。

7. 管理界面和模板预设 (Presets)

配置带有预定义变量和自定义 Emoji 占位符的共享模板,以快速生成用于复制和粘贴的推广文案。直接在管理面板中查看点击量图表和详细日志。了解更多关于 polycms.org