我有一个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
快速处理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更改后得到