php 使用路径、参数、正文和头重定向API请求[已关闭]

r1wp621o  于 2023-11-16  发布在  PHP
关注(0)|答案(1)|浏览(132)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

3天前关闭。
Improve this question
我已经改变了托管服务提供商,并得到了新的域名。
我想将旧的API重定向到新的API,如何在不影响移动的应用程序的情况下实现这一点?
范例:

https://old.example.com/api/example

字符串

https://new.example.app/api/example


包含所有请求路径、参数、主体和头

dhxwm5r4

dhxwm5r41#

我想重定向旧的API到新的API [.] [w]所有请求路径,参数,主体和头部
在HTTP重定向方面,旧服务器需要给予重定向响应(在您的情况下,我建议使用 * 永久 * 301重定向; HTTP 301)。
HTTP重定向允许您将新域名沿着路径(也称为资源)和参数(也称为查询)。
然后,API客户端需要重新发送(因为它已经被301响应重定向到新的URL)请求,然后该请求应该具有路径,参数,主体和头部。
一个移动的将不会受到影响(移动的应用程序是客户端),到目前为止,它支持HTTP重定向。
但有一个警告:虽然即使是非常老的HTTP客户端也不会有GET请求和重定向的问题,但POST或PUT请求的行为可能会因客户端和实现而异。例如,请求方法会从POST更改为GET,并且主体或原始请求头不会重新发送。
在您的场景中,这取决于移动的应用程序中使用的HTTP客户端。如果在测试床(Testbed)中运行该场景,发现移动的应用程序在重定向时没有透明地运行,则需要执行更好的策略。
最常见的方法是让旧端点充当新端点的反向代理,而不对客户端进行任何更改。(以及所有相关的头和主体)到新的端点,等待响应,然后将响应转发到客户端。这也类似于API网关(或者更确切地说,它是API网关,仅具有有限的功能集,仅用于将请求转发到新端点)。
尽管有大量的例子和文档,mod_rewrite是巫术。该死的酷巫术,但仍然是巫术。
-- Brian Moore

Apache HTTP服务器是一个全功能的应用服务器,可以充当这样的API网关(既可以单独重定向,也可以反向代理)。您可以在代理模块中找到更多信息,一个很好的起点可能是 *Forward Proxies and Reverse Proxies/Gateway * 部分。

强大的rewrite模块(URL操作的瑞士军刀;注意P|proxy标志)也有很好的灵活性,它可能已经越过了你的道路,并且在概念上可能已经在你的测试床中探索了答案开头建议的HTTP重定向场景(注意R|redirect标志)。

相关问题