HTTPS в HTTP с использованием CherryPy - PullRequest
4 голосов
/ 30 августа 2011

Возможно ли CherryPy перенаправить HTTP на HTTPS.Допустим, например, что приведенный ниже код http://example.com, если кто-то заходит по https://example.com Я хочу, чтобы он был перенаправлен на простой URL-адрес 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 ]

6 голосов
/ 30 августа 2011

Вы можете проверить request.scheme, если это «https», то вы можете поднять перенаправление.

См. http://docs.cherrypy.org/en/latest/refman/_cprequest.html?highlight=request.scheme#cherrypy._cprequest.Request.scheme

0 голосов
/ 12 июля 2015

Ссылка Эндрю Кокса снова не работает, вот обновленная ссылка на нее. У меня недостаточно очков, чтобы прокомментировать его ответ, отсюда и новый ответ.

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

...