Apache mod rewrite adjust REQUEST_URI代理

Apache mod rewrite adjust REQUEST_URI代理,apache,mod-rewrite,proxy,mod-proxy,Apache,Mod Rewrite,Proxy,Mod Proxy,我设置了一个虚拟主机,它根据附加的目录(URI中的资源)代理回许多不同的本地URL。我可以使用ProxyPass和ProxyPassReverse来实现它,但问题在于(本地)应用程序提供了一个启动页。这在Apache2.2上 使用mod_代理设置,我有以下功能: ProxyPass /VirtualConnect/ https://backend-app1.example.com/ ProxyPassReverse /VirtualConenct/ https://backend-app1.ex

我设置了一个虚拟主机,它根据附加的目录(URI中的资源)代理回许多不同的本地URL。我可以使用ProxyPass和ProxyPassReverse来实现它,但问题在于(本地)应用程序提供了一个启动页。这在Apache2.2上

使用mod_代理设置,我有以下功能:

ProxyPass /VirtualConnect/ https://backend-app1.example.com/
ProxyPassReverse /VirtualConenct/ https://backend-app1.example.com/
当通过VirtualConnect的反向代理URL访问应用程序时,后端应用程序会显示一个包含一系列链接的启动页,当您将鼠标悬停在链接上时,它会显示代理服务器主机名和链接到它的文件名,但“/VirtualConnect/”URL的一部分被删除,当您单击它时会导致链接中断。我假设这是因为在启动页面上没有使用相对URL。我可以用mod rewrite修复/解决这个问题吗。我没有访问后端应用程序的权限。关于mod_rewrite,我尝试了以下方法:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ https://backend-app1.example.com/$1 [P]
ProxyPassReverse / http://backend-app1.example.com/VirtualConnect/
我也试过了

RewriteCond %{REQUEST_URI} ^VirtualConnect/
RewriteRule /VirtualConnect/ https://backend-app1.example.com/%1/$1 [P]
根据我的理解,当URL最初以VirtualConnect开头时,条件是满足的,如果为真,则表示使用/VirtualConnect/附加到重写URL(即通过%1),然后$1将是在该点单击的任何内容

任何帮助都将是巨大的,或者如果你能告诉我一些我可能还没有读过的文档

干杯

更新 我有这个规则,它在代理的意义上起作用。实际上,我可以通过使用mod_代理来实现这一点

RewriteCond %{REQUEST_URI} ^/VirtualConnect/?
RewriteRule ^/VirtualConnect/?(.*) https://backend-app1.example.com%1/$1/?$ [P,L]
现在当我访问(如果没有结束斜杠,则会得到所需的结果。它会将我带到一个包含链接的页面。当您浏览启动页面中的一个链接时,它会在浏览器底部显示以下状态:。这将中断,因为当前的重写规则依赖于包含/VirtualConnect/的请求uri。如果我故意不这样做键入我到达所需的页面,但我需要的是一个重写规则,当我单击以下链接时,该规则会从到进行调整。我尝试了以下操作:

RewriteCond %{REQUEST_URI} ^/backup/?
RewriteRule ^/backup/? https://%{SERVER_NAME}/VirtualConnect/backup/?$
我希望通过把重写规则直接放在上面,它能将URL重写到我前面提到的下一个规则生效的地方。但它不起作用,因为实际规则不会修改地址栏中的内容。我想

我只是想知道这是否可能。我认为在Apache2.4中,mod_proxy_html模块解释了这种情况,但我可能读错了

再次感谢