对于 Python 的 WSGI 规范的服务器部分,而不是应用程序部分,是不是不允许服务器重写请求?我问是因为我找不到任何这样做的。据我了解,Nginx 和 Apache 是通用的,因此它们将具有重写规则引擎(和 IIS)。为什么支持 WSGI 的服务器不具有相同的功能,这样我就不必使用正则表达式?PEP-333 不允许重写吗?重写不是 Python 的做事方式吗?
问问题
68 次
1 回答
1
如何处理路径不是 WSGI 服务器职责的一部分。它以透明的方式将请求传递给应用程序,并以同样透明的方式返回生成的响应。这就是标准所描述的。
URL 重写是服务器可以实现的额外服务,但这与 WSGI 标准无关。Apache 使用可选模块 ( mod_rewrite
) 来实现这一点。这是一个受欢迎的功能,因此其他服务器也提供了它。但这并不意味着 WSGI 标准需要对此做任何说明,就像 HTTP 标准没有描述 URL 重写一样。
如果你需要重写路径,你可以在你的 WSGI 应用程序中轻松地这样做,或者编写 WSGI 中间件来这样做。WSGI 中间件对于服务器来说就像一个 WSGI 应用程序,对于下一个应用程序来说就像一个服务器。
有人已经为您编写了这样的中间件,请参阅WSGIRewrite 项目。
于 2016-02-01T21:48:14.320 回答