如何在烧瓶中将http重定向到https
how to redirect http to https in flask
我的 Flask 应用程序将 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'))
首先,这最好由 nginx
或您在 flask
前面使用的任何东西来完成
对于你的问题,你只在 443 端口上监听,而不是 80,这是 http 使用的端口,因此 http 请求实际上并没有到达你的服务器。
我的 Flask 应用程序将 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'))
首先,这最好由 nginx
或您在 flask
对于你的问题,你只在 443 端口上监听,而不是 80,这是 http 使用的端口,因此 http 请求实际上并没有到达你的服务器。