Apache重写某些URL以分离代码库的一部分

Apache重写某些URL以分离代码库的一部分,apache,mod-rewrite,apache2,rewrite,Apache,Mod Rewrite,Apache2,Rewrite,在本例中,基本上我有两个独立的代码基,v1和v2。我想将v1站点的某个区域重定向到v2,这样我们就可以定期将旧代码移植到新代码 现在,我以前做过这种类型的代码移植,我只是不记得具体细节,也不记得我们是否做了一些apache voodoo来让它工作。这一次,我可以让它命中v2代码,但随后的请求使用v1 vhost,因此v2请求的图像正在转换为v1的路径,并且不存在 因此,我希望domain1.com/foo/bar重定向到v2代码库,在v1 vhost中(在/home/domain1下),我有:

在本例中,基本上我有两个独立的代码基,v1和v2。我想将v1站点的某个区域重定向到v2,这样我们就可以定期将旧代码移植到新代码

现在,我以前做过这种类型的代码移植,我只是不记得具体细节,也不记得我们是否做了一些apache voodoo来让它工作。这一次,我可以让它命中v2代码,但随后的请求使用v1 vhost,因此v2请求的图像正在转换为v1的路径,并且不存在

因此,我希望domain1.com/foo/bar重定向到v2代码库,在v1 vhost中(在/home/domain1下),我有:

这将成功捕获请求并将其传递给v2代码库,但v2代码库将继续使用v1 vhost。显然,我希望它能够命中v2代码基并开始使用vhost,但不使用外部重定向[R]

重写日志的输出如下所示:

192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) init rewrite engine with requested uri /foo
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (3) applying pattern '^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$' to uri '/foo'
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) rewrite '/foo' -> '/home/domain2/index.php?controller=foo&action=&params='
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (3) split uri=/home/domain2/index.php?controller=foo&action=&params= -> uri=/home/domain2/index.php, args=controller=foo&action=&params=
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) local path result: /home/domain2/index.php
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (1) go-ahead with /home/domain2/index.php [OK]
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#8175e4b0/initial] (2) init rewrite engine with requested uri /images/layouts/standard/header/header_logo.gif
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#8175e4b0/initial] (3) applying pattern '^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$' to uri '/images/layouts/standard/header/header_logo.gif'
...
...

谁能帮我完成最后一步

如果要对另一台服务器进行代理调用,请将p添加到标志中。

谢谢,但这无法正常工作,我不记得上次使用p标志。您必须为新源提供完整的URL(包括协议),这与重定向基本相同。但是,web服务器不是发送重定向,而是执行请求本身,这使其成为反向代理。
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) init rewrite engine with requested uri /foo
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (3) applying pattern '^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$' to uri '/foo'
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) rewrite '/foo' -> '/home/domain2/index.php?controller=foo&action=&params='
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (3) split uri=/home/domain2/index.php?controller=foo&action=&params= -> uri=/home/domain2/index.php, args=controller=foo&action=&params=
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) local path result: /home/domain2/index.php
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (1) go-ahead with /home/domain2/index.php [OK]
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#8175e4b0/initial] (2) init rewrite engine with requested uri /images/layouts/standard/header/header_logo.gif
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#8175e4b0/initial] (3) applying pattern '^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$' to uri '/images/layouts/standard/header/header_logo.gif'
...
...