1

ユーザーを test1.domain.com から test2.domain.com にリダイレクトしたかったのです。url_rule の「host」とともに、url_map の「host_matching」を試しました。動作していないようで、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.comにリダイレクトするものは何もありませんtest.localhost.com。これが必要な場合は、リクエストへの http リダイレクトで応答する必要がありますlocalhost.comまた、 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()

localhost.comまた、hosts ファイルでおよびtest.localhost.comを 127.0.0.1 にマップする必要があることに注意してください。

于 2013-08-29T13:25:46.777 に答える