使用CherryPy将HTTPS转换为HTTP

4 投票
2 回答
1930 浏览
提问于 2025-04-17 00:36

CherryPy能否将HTTP请求重定向到HTTPS呢?举个例子,假设下面的代码是 http://example.com,如果有人通过 https://example.com 访问,我想让他们被重定向到普通的HTTP网址(可能是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()

2 个回答

0

Andrew Cox的链接又坏掉了,这里是更新后的链接。我没有足够的积分去评论他的回答,所以我发了个新回答。

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

6

你可以检查一下 request.scheme 的值,如果它是 "https",那么你就可以发起一个重定向。

查看这个链接了解更多信息:https://github.com/cherrypy/cherrypy/blob/f185ecd005d7fdbafb0ed83b0e49f05ac76e43fd/cherrypy/_cprequest.py#L218

撰写回答