1

我想将用户从 test1.domain.com 重定向到 test2.domain.com。我在 url_map 中尝试了“host_matching”以及 url_rule 中的“host”。它似乎不起作用,显示 404 错误。例如,在访问 'localhost.com:5000' 时,它应该转到 'test.localhost.com:5000'。

from flask import Flask, url_for, redirect
app = Flask(__name__)
app.url_map.host_matching = True

@app.route("/")
def hello1():
    #return "Hello @ example1!"
    return redirect(url_for('hello2'))

@app.route("/test/", host="test.localhost.com:5000")
def hello2():
    return "Hello @ test!"

if __name__ == "__main__":
    app.run()

可能吗?有人试过吗?提前致谢..

4

1 回答 1

3

您的代码中没有任何内容将请求从 重定向localhost.comtest.localhost.comlocalhost.com如果您希望发生这种情况,您需要通过 http 重定向来响应请求。当您将 host_matching 设置为 true 时,您还需要为所有路由指定主机

from flask import Flask, redirect, url_for
app = Flask(__name__)
app.url_map.host_matching = True

@app.route("/", host="localhost.com:5000")
def hello1():
    return redirect(url_for("hello2")) # for permanent redirect you can do redirect(url_for("hello2"), 301)

@app.route("/", host="test.localhost.com:5000")
def hello2():
    return "Hello @ test!"

if __name__ == "__main__":
    app.run()

请记住,您还需要在主机文件中映射127.0.0.1localhost.comtest.localhost.com127.0.0.1。

于 2013-08-29T13:25:46.777 回答