我想将用户从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()
有可能吗?有人试过吗? 提前谢谢..
答案 0 :(得分:1)
您的代码中没有任何内容将请求从localhost.com
重定向到test.localhost.com
。如果您希望这种情况发生,您需要使用http重定向来响应localhost.com
的请求。 You also need to specify the host for all routes when you set host_matching to 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()
请记住,您还需要在主机文件中将localhost.com
和test.localhost.com
映射到127.0.0.1。