基于 http 标头的 Google 应用引擎重定向

基于 http 标头的 Google 应用引擎重定向

在 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)

相关内容