2012-05-09 50 views
0

我想反向代理只是網站上的主頁 - 試圖使用下面的規則。基本上我有一個備用頁面,我希望內容是服務器,但我仍然希望網站的原始URL能夠顯示來自反向代理的內容。這兩個網頁在同一域 - 唯一的區別是一個是www.domain.com而另一頁是www2.domain.com反向代理只是主頁

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] 
ProxyPass http://www.domain.com http://www2.domain.com/ 
ProxyPassReverse http://www.domain.com http://www2.domain.com/ 

當我把在上述規則不工作 - 有人能表演請問我哪裏錯了?

+0

RewriteCond對代理規則沒有影響,它只用於mod_rewrite規則。所以如果你打算使用mod_proxy,你可以完全刪除該行。這也對你解釋究竟發生了什麼有幫助 - 你的規則根本沒有任何作用,或者他們做了什麼,但不是你所期望的? –

+0

我雖然不得不放入RewriteCond,但是我只希望反向代理髮生在首頁,例如www.domain.com,而不是其他任何東西,例如www.domain.com/sales等....當我把規則放在什麼都沒有發生,頭版仍然是從原來的位置 - 不是被代理的...希望解釋這個更好... ... 。感謝您的時間... – frodo

回答

1

ProxyPassProxyPassReverse第一個參數是一個路徑,爲您的指令正確的語法是

ProxyPass/http://www2.domain.com/ 
ProxyPassReverse/http://www2.domain.com/ 

但是這將代理所有請求。嘗試

#disable forward requests 
ProxyRequests Off 

#allow proxy requests 
<Proxy *> 
    Order deny,allow 
    Allow from all 
</Proxy> 

#reverse proxy 
RewriteEngine On 
RewriteRule ^/?$ http://www2.domain.com/ [P,QSA,L] 

如果代理失敗,您的服務器error.log可能會告訴您發生了什麼。或者爲mod_rewrite添加日誌,它會告訴你爲什麼它不捕獲請求

RewriteLogLevel 5 
RewriteLog /path/to/a/file 
+0

感謝您的幫助....我已經試過這個,但它不工作 - 當我把規則在我被提示從舊網站的用戶名和密碼,就好像它的閱讀htaccess文件從舊網站,而不是從代理的新網站拉內容... – frodo

+0

@frodo你將不得不檢查你的服務器做什麼。我添加了一些提示來做到這一點。 – nikoshr

+0

現在就這樣做......感謝您的幫助 – frodo