datasette-redirect-to-https 作者 simonw

收藏

README 源代码

datasette-redirect-to-https

PyPI Changelog Tests License

一个 Datasette 插件,将所有非 HTTPS 请求重定向到 HTTPS

安装

在与 Datasette 相同的环境中安装此插件。

$ datasette install datasette-redirect-to-https

用法

安装后,对 http:// 协议的传入 GET 请求将通过 301 重定向到等效的 https:// 页面。

非 GET 的 HTTP 方法将收到 405 Method Not Allowed HTTP 错误。

配置

一些托管服务提供商会替您处理 HTTPS,然后通过 HTTP 将请求传回您的应用服务器。

为了使此插件正常工作,它需要检测到原始传入请求是通过 HTTP 发送的。

此类托管服务提供商通常会设置一个额外的 HTTP 头部,例如 x-forwarded-proto: http,用于标识原始协议。

您可以在 metadata.json 中使用以下插件配置,将 datasette-redirect-to-https 配置为遵守此头部:

{
  "plugins": {
    "datasette-redirect-to-https": {
      "if_headers": {
        "x-forwarded-proto": "http"
      }
    }
  }
}

如果传入请求包含 x-forwarded-proto: http 请求头部,上述示例将重定向到 https://

如果列出了多个 if_headers,只要其中任何一个匹配,就会发生重定向。

开发

要在本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd datasette-redirect-to-https
python3 -m venv venv
source venv/bin/activate

现在安装依赖项和测试依赖项

pip install -e '.[test]'

运行测试

pytest