我遇到过一种情况,我想将以 /app 开头的所有内容重定向到内部服务器。基本上,这个想法是 Apache 将作为反向代理执行以下转换:
http://external/app -> http://myserver:1082/myapp
我能够使用 Rewrite 来完成此操作,如下所示:
RewriteCond %{REQUEST_URI} ^/app
RewriteRule ^/app(.*)$ http://myserver:1082/myapp$1 [L,P]
ProxyPassReverse /app http://myserver:1082/myapp
一切正常。问题是现在我在 URL 上有一个语言前缀,但在应用程序上却没有。所以我需要以下重定向:
http://external/app -> http://myserver:1082/myapp
http://external/en/app -> http://myserver:1082/myapp
http://external/pt/app -> http://myserver:1082/myapp
虽然这可以通过重写来实现,但我对 proxyPassReverse 有一个问题。因为基本上我需要做一个动态的 ProxyPassRever,根据用户的实际 URL 请求,更改 Location
ProxyPassReverse /en/app http://myserver:1082/myapp
ProxyPassReverse /pt/app http://myserver:1082/myapp
ProxyPassReverse /app http://myserver:1082/myapp
它会是这样的
ProxyPassReverse ${preffix}/app http://myserver:1082/myapp
可以这样做吗?