2009-04-23 82 views
0

基本上我有2个独立的代码库,v1和v2是为了这个例子。我想将v1站点的某个区域重定向到v2,以便我们可以定期将旧代码移植到新代码中。Apache重写某些网址来分隔部分代码库

现在,我已经完成了这种精确的代码移植,我只是不记得确切的细节,以及我们是否做了一些apache voodoo来使它工作。这一次,我可以让它打到v2代码,但随后的请求使用v1 vhost,因此图像v2请求正在转换为v1的路径并且不存在。

所以我想domain1.com/foo/bar得到重定向到V2的代码库,在V1虚拟主机(在/ home /域1)我有:

RewriteRule ^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$ /home/domain2/index.php?controller=foo&action=$1&params=$2 [NC,L] 

这成功地抓住了请求,并将它到v2代码库,但是然后v2代码库继续使用v1 vhost。很显然,我希望它击中了v2的代码库,并开始使用虚拟主机,但不使用外部重定向[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' 
... 
... 

谁能帮助最后一步!?

回答

1

如果您想对其他服务器进行代理调用,请将P添加到标志中。

+0

谢谢,但这不能正常工作,我不记得上次我使用P标志。 – jmoz 2009-04-24 09:22:49