2011-05-11 147 views
0

我已經在我的Windows主機文件中定義了不同的主機,每個項目發佈一個(rc1,rc2等)。 我想爲每個發行版創建一個vhost,因此我可以直接重定向到它的子目錄例如:apache2 vhost重定向

pp15.mv =>http://localhost/mv/pp15/ .....
pp16.mv =>http://localhost/mv/pp16/ .....

而且,我需要將主機ppX.mv重定向到自動登錄的URL,東西看起來像/mv_dbname.php?login=testlogin & mdp = 202cb962ac59075b964b07152d234b70

所以,最後,我想在我的urlbar鍵入此:
http://pp15.mv
和重定向到
http://pp15.mv/mv_dbname.php?login=testlogin&mdp=202cb962ac59075b964b07152d234b70

在我的虛擬主機文件我有這樣的事情:

<VirtualHost *:80> 
    ServerName pp15.mv 
    DocumentRoot "D:\apache\htdocs\mv\pp15" 
    <Directory "D:\apache\htdocs\mv\pp15"> 
     AllowOverride All 
     Allow from All 
    </Directory> 
    RewriteEngine On 
    RewriteRule ^/index.php /myvisitv3_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R] 
    RewriteRule ^(/)?$ /myvisitv3_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R] 
</VirtualHost> 

第一次重定向很好,但如果我嘗試直接重定向主機,我得到一個重定向錯誤(太多的重定向發生)

有人有想法嗎?

以前謝謝。

+0

只看該虛擬主機,您只設置了域pp15.mv上請求的重寫規則。您是否嘗試訪問除此以外的域的重定向?據我所知,你仍然需要爲其他域的虛擬主機(或至少別名),但我可能是錯的。 – 2011-05-11 14:47:16

+0

我只試圖從pp15.mv域訪問,我沒有列出我擁有的任何虛擬主機,只有一個例如,另一個完全相同。 – kitensei 2011-05-11 14:53:44

回答

0

OK,終於在這裏我所做的:

<VirtualHost *:80> 
    ServerName pp16.mv 
    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^pp16\.mv$ 
    RewriteRule ^(/)?$ /mv/pp16/xxx/xxx_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R] 
</VirtualHost> 

沒有[L]上重定向,因爲應用程序有內部重定向,並且沒有文檔根目錄,因爲PHP將無法讀取$ _ SERVER ['REQUESTED_URI 「] VAR正確,所以我可以這樣做(我喜歡)

<VirtualHost *:80> 
    ServerName pp16.mv 
    DocumentRoot "D:\apache\htdocs\mv\pp16\xxx" 
    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^pp16\.mv$ 
    RewriteRule ^(/)?$ /xxx_dbname.php?login=johsmi&mdp=202cb962ac59075b964b07152d234b70 [R] 
</VirtualHost> 

但是PHP會誤讀的應用程序路徑(/,而不是/MV/PP16/XXX/