【问题标题】:Redirecting a cURL GET-request for a website's subfolder to another IP将网站子文件夹的 cURL GET 请求重定向到另一个 IP
【发布时间】:2020-11-01 12:00:33
【问题描述】:

我对一些使用硬编码域(包括特定子文件夹)的旧代码有一点问题。网络服务器总是以{"err":1200, "msg":"invalid"} 响应。问题是,我无法控制编辑代码。由于此代码有 100 多个硬编码不同的 HTTP-GET 请求,它们工作得很好,唯一不起作用的是 GET 请求针对特定子文件夹时。顺便说一句,该程序只需要一个简单的响应: {"err":0} 所以我决定快速搭建一个本地 Apache 并编辑 /etc/hosts 文件将所有请求重定向到 127.0.0.1。我创建了一个仅包含预期响应的 html 文件,并将其设置为默认的 404 页面。当然,这只适用于请求上述站点子文件夹的那一行代码。 显然,这完全破坏了所有其他代码行。

TL;DR 我只需要将一个 HTTP-GET 请求重定向到另一个 IP,而所有其他请求保持不变。有问题的请求针对特定的子文件夹。我想使用与 /etc/hosts 文件类似的东西 - 只是使用额外的目录参数而不是整个域。

有什么想法吗?

【问题讨论】:

    标签: http curl redirect get hosts


    【解决方案1】:

    请注意,您不是在谈论重定向。重定向相当简单,因为您只需将任何网络服务器配置为仅向新服务器发送302 响应即可。在 apache 中,查看 RedirectMatch 或“重写”。

    如果这对你有用,那就简单了。如果不是,并且您想处理来自同一域的所有端点(来自旧系统和新系统),那么您最好的选择可能是反向代理。 Apache 和许多其他网络服务器也支持这一点。

    这基本上是这样工作的:

    • 如果路径与特定模式匹配,则将请求代理到您的新系统。
    • 如果没有,请将请求代理到您的旧系统

    我建议您阅读您选择的网络服务器上的反向代理文档,并尝试设计一个好的配置。

    【讨论】:

    • 您好,感谢您的意见。这看起来正是我想要的。我稍后会测试它并评论结果。
    • a2enmodded 如下:proxy proxy_http proxy_ajp rewrite deflate headers proxy_connect proxy_html 并添加: Include "conf/extra/httpd-ajp.conf" ProxyPass "/ targetfolder/" "127.0.0.1" ProxyPassReverse "/tagertfolder/" "39.106.23.42/targetfolder" 参数化 curl 命令似乎总是以 http500 结尾。从我的本地 apache 返回的错误。我是否遗漏了什么或者为什么不会将请求定向到被调用的外部 IP?
    • 超级难读,作为一个新问题可能会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多