首页 > 解决方案 > 在反向代理后面加前缀 url_for()

问题描述

场景:HTTP 反向代理后面的 Flask + flask-login

Flask 应用程序位于http://localhost:5000/ 公共应用程序位于http://example.com/my_fancy_app/

反向代理向http://example.com/my_fancy_app/[stuff]发送请求到http ://localhost:/5000/[stuff]

使用 login_required 包装器:

login_required uses url_for() which redirects back out to http://example.com/[stuff]

我需要它重定向到http://example.com/my_fancy_app/[stuff]

在我 fork login_required_external=True并向调用添加或支持 FlaskView之前url_for(),有没有一种好方法可以为我的应用程序中所有生成的 URL 设置一个前缀login_required可以看到?

标签: pythonflaskflask-login

解决方案


如此处所述:

http://blog.macuyiko.com/post/2016/fixing-flask-url_for-when-behind-mod_proxy.html

创建一个扩展 app.wsgi_app 类并包装它的类。


推荐阅读