Flask路径规则中的尾部斜杠触发器404

Flask路径规则中的尾部斜杠触发器404,第1张

Flask路径规则中的尾部斜杠触发器404

您的

/users
路线缺少尾部斜杠,Werkzeug将该尾部斜杠解释为不匹配尾部斜杠的显式规则。添加尾部斜杠,如果URL没有URL,则Werkzeug将重定向,或者
strict_slashes=False
在路由上设置,并且无论有没有斜杠,Werkzeug都会匹配规则。

@app.route('/users/')@app.route('/users/<path:path>')def users(path=None):    return str(path)c = app.test_client()print(c.get('/users'))  # 302 MOVED PERMANENTLY (to /users/)print(c.get('/users/'))  # 200 OKprint(c.get('/users/test'))  # 200 OK@app.route('/users', strict_slashes=False)@app.route('/users/<path:path>')def users(path=None):    return str(path)c = app.test_client()print(c.get('/users'))  # 200 OKprint(c.get('/users/'))  # 200 OKprint(c.get('/users/test'))  # 200 OK

您还可以设置

strict_slashes
所有URL。

app.url_map.strict_slashes = False

但是,在大多数情况下,应避免禁用严格的斜杠。该文档解释了原因:

即使省略了斜杠,此行为也允许相对URL继续工作,这与Apache和其他服务器的工作方式一致。而且,URL将保持唯一,这有助于搜索引擎避免对同一页面进行两次索引。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5668421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存