为了这个例子,基本上我有 2 个独立的代码库,v1 和 v2。我想将 v1 站点的某个区域重定向到 v2,以便我们可以定期将旧代码移植到新代码。
现在,我以前做过这种确切的代码移植,我只是不记得确切的细节以及我们是否做了一些 apache voodoo 来让它工作。这一次我可以让它命中 v2 代码,但随后的请求使用 v1 vhost,因此 v2 请求的图像正在转换为 v1 的路径并且不存在。
所以我希望 domain1.com/foo/bar 被重定向到 v2 代码库,在 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 虚拟主机。显然我希望它能够访问 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'
...
...
任何人都可以帮助完成最后一步!?