我的Flask应用程序将http重定向到https。我发现 python flask redirect to https from http但它不起作用。
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'))
答案 0 :(得分:3)
首先,最好通过nginx
或flask
对于你的问题,你只是在443端口而不是80上听,这是一个http使用的,所以http请求实际上并没有命中你的服务器。