2016-11-15 50 views
0

我的Flask應用程序將http重定向到https。我發現 python flask redirect to https from http但它不起作用。如何在http中重定向http到https

from flask import Flask, request, redirect 
from werkzeug.serving import make_ssl_devcert 


make_ssl_devcert('key') 

app = Flask(__name__) 

@app.before_request 
def before_request(): 
    if request.url.startswith('http://'): 
     url = request.url.replace('http://', 'https://', 1) 
     code = 301 
     return redirect(url, code=code) 

@app.route("/") 
def hello(): 
    return "Hello World!" 


if __name__ == "__main__": 
    app.run(host='127.0.0.1', port=443, debug=False, ssl_context=('key.crt', 'key.key')) 

回答

1

首先,這應該更好地被nginx完成或任何你正在使用的flask

對於你的問題前,你的443端口不是80,這是一個HTTP上只聽使用,所以http請求實際上不會打你的服務器。