You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Tiny URL短链接的路由跳转:匹配原链接或跳转错误页

短链接重定向实现方案

核心逻辑流程

  • 服务器捕获短链接的路径参数(比如/shortUrl中的shortUrl标识)
  • 查询数据库,匹配该短码对应的原长链接
  • 若查询到有效链接:返回301永久重定向(适合长期不变的链接)或302临时重定向(适合可能变更的链接)到原长链接
  • 若未查询到:重定向到指定错误页www.mysite.com/error

具体代码示例

1. Node.js + Express 实现

const express = require('express');
const app = express();
// 模拟数据库,实际项目替换为MongoDB/MySQL等真实存储
const urlMap = {
  'shortUrl': 'www.mysite.com/very-long-url'
};

// 捕获所有短链接请求
app.get('/:shortCode', (req, res) => {
  const shortCode = req.params.shortCode;
  const originalUrl = urlMap[shortCode];
  
  if (originalUrl) {
    // 301永久重定向,需临时重定向则改为res.redirect(302, originalUrl)
    res.redirect(301, originalUrl);
  } else {
    res.redirect('www.mysite.com/error');
  }
});

app.listen(3000, () => {
  console.log('服务器运行在3000端口');
});

2. Python + Flask 实现

from flask import Flask, redirect

app = Flask(__name__)
# 模拟数据库存储
url_map = {
    'shortUrl': 'www.mysite.com/very-long-url'
}

@app.route('/<short_code>')
def redirect_to_original(short_code):
    original_url = url_map.get(short_code)
    if original_url:
        # 默认是302临时重定向,需301则添加code=301参数
        return redirect(original_url, code=301)
    else:
        return redirect('www.mysite.com/error')

if __name__ == '__main__':
    app.run(debug=True)

关键注意事项

  • 重定向状态码选择:301适合长期固定的短链接,搜索引擎会更新索引指向原链接;302适合可能变更原链接的场景,搜索引擎会保留短链接的索引。
  • 数据库优化:短码字段建议添加索引,提升高并发场景下的查询速度。
  • 错误页校验:提前确认www.mysite.com/error页面已部署,确保能友好提示用户链接无效。

内容的提问来源于stack exchange,提问作者dy123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:27:37