PEP 3333 规范是否阻止 Python WSGI Web 服务器具有重写规则?
Does PEP 3333 specification preclude Python WSGI Web Servers from having Rewrite Rules?
对于Python的WSGI规范的server部分,不是application部分,是不是不允许server重写请求?我问是因为我找不到任何可以做到的。据我了解,Nginx 和 Apache 是通用的,因此它们将具有重写规则引擎(和 IIS)。为什么支持 WSGI 的服务器不具有相同的服务器以便我不必使用正则表达式? PEP-333 不允许重写吗?重写不是 Python 做事的方式吗?
如何处理路径不是 WSGI 服务器职责的一部分。它将请求透明地传递给应用程序,并且 returns 产生的响应同样透明地传递。这就是标准描述的内容。
URL 重写是服务器 可以 实现的一项额外服务,但这与 WSGI 标准无关。 Apache 使用可选模块 (mod_rewrite
) 执行此操作。这是一个受欢迎的功能,因此其他服务器也提供了它。但这并不意味着 WSGI 标准需要对此有任何说明,就像 HTTP 标准没有描述 URL 重写一样。
如果您需要重写路径,您可以在您的 WSGI 应用程序中轻松地这样做,或者编写 WSGI 中间件来这样做。 WSGI 中间件对于服务器来说就像一个 WSGI 应用程序,对于下一个应用程序来说就像一个服务器。
有人已经为你写了这样的中间件,见WSGIRewrite project.
对于Python的WSGI规范的server部分,不是application部分,是不是不允许server重写请求?我问是因为我找不到任何可以做到的。据我了解,Nginx 和 Apache 是通用的,因此它们将具有重写规则引擎(和 IIS)。为什么支持 WSGI 的服务器不具有相同的服务器以便我不必使用正则表达式? PEP-333 不允许重写吗?重写不是 Python 做事的方式吗?
如何处理路径不是 WSGI 服务器职责的一部分。它将请求透明地传递给应用程序,并且 returns 产生的响应同样透明地传递。这就是标准描述的内容。
URL 重写是服务器 可以 实现的一项额外服务,但这与 WSGI 标准无关。 Apache 使用可选模块 (mod_rewrite
) 执行此操作。这是一个受欢迎的功能,因此其他服务器也提供了它。但这并不意味着 WSGI 标准需要对此有任何说明,就像 HTTP 标准没有描述 URL 重写一样。
如果您需要重写路径,您可以在您的 WSGI 应用程序中轻松地这样做,或者编写 WSGI 中间件来这样做。 WSGI 中间件对于服务器来说就像一个 WSGI 应用程序,对于下一个应用程序来说就像一个服务器。
有人已经为你写了这样的中间件,见WSGIRewrite project.