在 app engine app.yaml 中的handlers
部分中,我想指定一个基于 http 标头的重定向。
因此如果请求带有此标头,则会将其路由到其他地方。
这可能吗?
答案1
这在 app.yaml 中是不可能的,主要是因为你无法检测特定的自定义标头,只能将它们设置为你的响应,如图所示这里。
对于这种情况,您需要做的是通过应用程序代码管理请求标头,以检测您要查找的标头。请记住使用 GAE 作为文档状态:
出于安全目的,一些标头在到达应用程序之前会被中间代理清理、修改或删除。
下面是一个使用 flask 在 python 中实现的简单示例
import os
from flask import Flask, redirect, url_for, request
app = Flask(__name__)
@app.route('/')
def hello():
if request.headers['your-header-name']:
return redirect(url_for('foo'))
else:
return 'Hello World'
@app.route('/foo')
def foo():
return 'Hello Foo!'
if __name__ == '__main__':
# Bind to PORT if defined, otherwise default to 5000.
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)