所以我试图保持整个请求相同,但代理请求的端口到不同的服务器(实际上是在同一台机器上的另一个http服务器)
所以,如果我有一个请求com为some.foo.server1.com/more/foo它留在服务器,但如果我去some.foo.server1.test / more / foo它发送请求到其他服务器这是监听端口8080 …所以redirect到some.foo.server2.com:8080/more/foo
我尝试使用proxypassmatch,但它似乎并没有像我可以通过它们的子域。
我知道我正在进入虚拟主机块,因为当我执行DUMP_VHOSTS时它正在打印出来,而且我正在进入虚拟主机错误页面。 而当我访问server2.com:8080或server1.test:8080时,我正在到达另一台服务器。 这只是不实际做redirect。
<VirtualHost *:80> UseCanonicalName Off ServerAlias *.test # Rewrite Rules ##################### RewriteEngine On RewriteCond %{SERVER_PORT} "80" RewriteCond %{HTTP_HOST} "^(.*)\.server1.test[$/]" [NC] RewriteRule "^(.*)$" "%1.server2:8080$1" [P] # end Rewrite Rules ################# </VirtualHost>
我尝试使用mod_rewrite,但不知何故,即使我重写和redirect,它仍然通过端口80运行。 (在某一点上,我终于被无限循环的重写,因为这样的东西像some.foo.server2.com:8080/some.foo.server2.com:8080…等等无限。)
无论如何,似乎这可能是一个足够简单的问题,但我花了太多时间在上面。 有什么build议么?