POST请求在Apache httpd中完成URL重写时转换为GET

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

我正尝试从一个上下文的域名中删除上下文根,以便用户可以直接以https://mydomain.com而不是https://mydomain.com/contextRoot访问该网站。 我添加了下面的重写规则,而不是这个上下文的proxypass和proxypassreverseconfiguration。

# 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]

这个configuration适用于所有的http GET请求。 对于POST请求,发生redirect,但随后的调用变成GET。

请帮我理解为什么会发生这种情况,我该如何解决这个问题。 我也想知道是否还有更多的重写规则configuration,我已经添加了做什么proxypassreverse在以前的configuration中使用做。

VS 2015 RC Apache Cordova空白appTemplate构build失败

Apache + mod_wsgi – Python不会加载已安装的模块

(13)权限被拒绝:访问/cgi-bin/test.cgi被拒绝

如何为PHP设置全局环境variables

Apache Nutch 2.1不同的批处理id(null)

R + Apache? 交互式R图和互联网上的快速协作

PKIXpath构build失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到要求的目标的有效证书path

PHP:没有PHP.ini文件

快速处理Apache日志

如何在apache 2.4.6上安装apxs模块

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

在HTTP 1.1中,实际上有一个状态码(307),它表示请求应该使用相同的方法和发布数据重复。

正如其他人所说,这里有可能被滥用,这可能是为什么许多框架坚持301和302抽象。

我有同样的问题,并检查了一下。 这个问题在另一个帖子中回答:

redirectmatch更改后得到

相关文章

可以认为OpenFeign是Feign的增强版,不同的是OpenFeign支持S...
为进一步规范小程序交易生态、提升用户购物体验、满足用户在...
云原生之使用Docker部署Dashdot服务器仪表盘
本文主要描述TensorFlow之回归模型的基本原理
1.漏洞描述Apache Druid 是一个集时间序列数据库、数据仓库和...
内部类(当作类中的一个普通成员变量,只不过此成员变量是cl...