You need to enable JavaScript to run this app. Python Flask应用点击跳转链接报404无法触发重定向问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Python Flask应用点击跳转链接报404无法触发重定向问题求助

问题原因与解决步骤

核心错误出在路由规则定义、参数匹配逻辑两个环节,按以下步骤修改即可:

  • 原路由规则存在多余的双引号,和实际请求路径不匹配
  • URL路径参数未指定path转换器,无法匹配带斜杠的外部URL
  • 模板中href属性未加引号,特殊场景会导致链接生成截断

具体修改方案

1. 修正后端路由规则

@app.route('/redirect/<path:url>')
def go_to_reddit(url):
    print("Redirecting to ", url)
    # 可选:增加URL合法性校验,避免开放重定向漏洞
    if not url.startswith(('http://', 'https://')):
        url = 'https://' + url
    return redirect(url)

修改说明:
去掉路由规则里多余的双引号,给url参数增加path前缀,这样参数内容里的斜杠会被识别为URL的一部分,不会被当成路由层级分隔符。

2. 修正模板链接写法

给href属性值增加双引号,避免链接因特殊字符截断:

<ul>
    {% for post in posts %}
    <li><a href="{{url_for('go_to_reddit', url=post.url)}}">{{ post.title }}</a></li>
    {% endfor %}
</ul>

3. 可选排查验证步骤

如果修改后仍存在问题,可按以下逻辑定位:

  • 开启Flask调试模式,查看404日志里的实际请求路径,对比是否和路由规则匹配
  • 在模板中打印{{url_for('go_to_reddit', url=post.url)}}的输出,确认生成路径格式是否符合预期
  • 检查是否有其他优先级更高的路由提前匹配了当前请求路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 12:54:04