0

我有一个在 localhost:3000 上运行的 Bottle/Python 应用程序,我正在使用 Apache mod_proxy 将请求转发到。它有 99% 的时间都在工作,除非我尝试访问如下网址:

http://m2t.openseedbox.com/api/upload/http%3A%2F%2Ftorrents.thepiratebay.se%2F6753175%2FPioneer_One_S01E04_720p_x264-VODO.6753175.TPB.torrent

(基本上,有一个 URL 是 URL 的一部分,但它是通过 encodeURIComponent 运行的)。在这种情况下,Apache 返回它自己的 404 页面,而不是将 url 传递给后端服务器。

我的apache配置如下:

<VirtualHost *:80>
        ServerName m2t.openseedbox.com

        ProxyPass / http://127.0.0.1:3000/ retry=0
        ProxyPassReverse / http://127.0.0.1:3000/
        ProxyPreserveHost On
</VirtualHost>

为什么 Apache 不代理此 URL?(您可以自己访问它以查看应有 Bottle 页面的 Apache 404 页面)

编辑:我通过将 URL 作为 GET 参数传递来解决它。我仍然不知道为什么 Apache 没有像宣传的那样工作......

4

1 回答 1

2

默认情况下,Apache 不会通过其中包含 %2F 的 url。有关更多信息,请参阅下面的链接。

URL 中断中的 %2F 并且不引用所需的 .php 文件

于 2013-12-19T08:37:31.710 回答