基本上,为了这个例子,我有两个独立的代码库,v1和v2。我想将v1站点的某个区域重定向到v2,这样我们就可以定期将旧代码移植到新代码中。
现在,我已经完成了这种类型的代码移植之前,我只是不记得确切的细节以及我们是否做了一些apache伏都教来让它工作。这一次,我可以让它命中v2代码,但随后的请求使用v1 vhost,因此v2请求的图像正在转换为v1的路径而不存在。
所以我希望domain1.com/foo/bar重定向到v1 vbase代码库,在v1 vhost(在/ home / domain1下)我有:
RewriteRule ^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$ /home/domain2/index.php?controller=foo&action=$1¶ms=$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=¶ms='
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=¶ms= -> uri=/home/domain2/index.php, args=controller=foo&action=¶ms=
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'
...
...
任何人都可以帮助完成最后一步!?
答案 0 :(得分:1)
如果要对另一台服务器进行代理呼叫,请将P添加到标志中。