首页 > 解决方案 > 如何将http重定向到https python http.server

问题描述

默认情况下如何将 HTTP 重定向到 HTTPS?

例如,如果我输入 example_address.com 我想获取https://example_address.com

我的代码如下

def run(server_class=HTTPServerV6, handler_class=Server, port=443):
    server_address = ('::', port)
    httpd = server_class(server_address, handler_class)
    httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./secret_private_key.pem', server_side=True)
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        pass
    httpd.server_close()

标签: pythonhttphttpsserverhttpserver

解决方案


您可以尝试在端口 80中运行另一台服务器并将其请求重定向到您的 https 服务器。

像这样的东西:

def runHTTP(server_class=HTTPServerV6, handler_class=Server, port=80):
server_address = ('::', port)
httpd = server_class(server_address, handler_class)
httpd.send_response(301)
httpd.send_header('Location','https://www.yourserver.com')
httpd.end_headers()

推荐阅读