gpt4 book ai didi

apache - 当在 apache httpd 中完成 URL 重写时,POST 请求被转换为 GET

转载 作者:行者123 更新时间:2023-12-04 12:56:20 29 4
gpt4 key购买 nike

我有一个 apache 网络服务器,它充当内部应用服务器的反向代理。我已经使用 ProxyPass 和 ProxyPassReverse 来实现这一点。我有多个上下文根映射到不同的应用程序。

我试图从一个上下文的域名中删除上下文根,以便用户可以直接访问该网站 https://mydomain.com而不是 https://mydomain.com/contextRoot .我已经添加了以下重写规则,而不是为此上下文的 proxypass 和 proxypassreverse 配置。

# redirecting old URL to new URL
RewriteRule ^/contextRoot(.*)$ https://mydomain.com$1 [L,R=301]

# proxying to internal app servers
RewriteCond %{REQUEST_URI} !^(/anotherContextRoot1.*)$
RewriteCond %{REQUEST_URI} !^(/anotherContextRoot2.*)$
RewriteRule .* http://10.1.0.1:8080/contextRoot%{REQUEST_URI} [L,P]

此配置适用于所有 http GET 请求。对于 POST 请求,重定向发生,但后续调用变为 GET。

请帮助我理解为什么会发生这种情况以及我该如何纠正。我还想了解我是否添加了更多的重写规则配置来执行 proxypassreverse 在以前的配置中所做的工作。

最佳答案

这个问题在这里回答https://softwareengineering.stackexchange.com/questions/99894/why-doesnt-http-have-post-redirect/99966#99966 - 这个答案的简短摘要

In HTTP 1.1, there actually is a status code (307) which indicates that the request should be repeated using the same method and post data.

As others have said, there is a potential for misuse here which may be why many frameworks stick to 301 and 302 in their abstractions.

关于apache - 当在 apache httpd 中完成 URL 重写时,POST 请求被转换为 GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26728231/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com