HTTPS到使用CherryPy的HTTP

问题描述 投票:4回答:2

CherryPy是否可以将HTTP重定向到HTTPS。例如,如果有人通过http://example.com访问,则下面的代码为https://example.com,我希望将他们重定向到纯HTTP URL(也许是301重定向?)我该如何实现?

#!/usr/bin/env python

from pprint import pformat
from cherrypy import wsgiserver

def app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)
    return [pformat(environ)]

server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 80), app)

try:
    server.start()
except KeyboardInterrupt:
    server.stop()
python http https wsgi cherrypy
2个回答
6
投票

您可以检查request.scheme是否为“ https”,然后可以引发重定向。

请参见https://github.com/cherrypy/cherrypy/blob/f185ecd005d7fdbafb0ed83b0e49f05ac76e43fd/cherrypy/_cprequest.py#L218


0
投票

Andrew Cox的链接再次断开,这是指向该链接的更新的链接。我没有足够的观点来评论他的答案,因此没有新答案。

https://cherrypy.readthedocs.org/en/3.3.0/refman/_cprequest.html#cherrypy._cprequest.Request.scheme

© www.soinside.com 2019 - 2024. All rights reserved.