2009-04-23 117 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