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

如何让Flask忽略端点URL中的末尾斜杠?

解决Flask路由末尾斜杠兼容问题

方法一:Flask全局配置

Flask自带全局关闭严格斜杠检查的功能,只需在初始化应用时添加一行配置,就能让所有路由自动兼容带斜杠和不带斜杠的URL,无需为每个路由重复写装饰器:

from flask import Flask

app = Flask(__name__)
# 全局关闭严格斜杠检查
app.url_map.strict_slashes = False

@app.route("/things")
def things():
    main = env.get_template('things.html')
    context = data.things()
    return main.render(**context)

设置后,访问/things和/things/都会匹配到同一个视图函数。

方法二:Apache-WSGI部署时配置URL重写

如果用Apache+WSGI部署,可以借助mod_rewrite模块统一处理末尾斜杠,把带斜杠的请求重定向到不带斜杠的版本,Flask只需维护一套路由规则即可:

在Apache虚拟主机配置文件或.htaccess中添加以下规则:

RewriteEngine On
# 将末尾带/的URL永久重定向到不带/的版本
RewriteRule ^(.*)/$ $1 [L,R=301]

配置生效后,用户访问/things/会被自动跳转至/things,既实现兼容,又保证了URL的一致性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:17:44