2010-09-14 23 views
6

我正在嘗試通過.htaccess和代理標誌進行不可見(透明?)重寫。它與[R]標誌一起使用,但不與[P]標誌一起使用,因爲它只會產生500錯誤。這兩個域位於不同的服務器上,並啓用了mod_proxy模塊。我的.htaccess是否正確?.htaccess用[P]代理標誌重寫

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} =one.com 
RewriteRule ^(.*)$   http://two.com/$1 [P] 
+0

你可以檢查服務器上的錯誤日誌,你得到的500錯誤,看看具體的錯誤是什麼? – 2010-09-14 17:11:58

+0

這是我得到的錯誤:***。IP。***。*** - - [14/Sep/2010:19:33:11 +0200]「GET/149c9fad24f457143dcb HTTP/1.1」500 433「 - 「」Mozilla/5.0(Macintosh; U;英特爾Mac OS X 10_6_4; fr-fr)AppleWebKit/533.18.1(KHTML,如Gecko)版本/ 5.0.2 Safari/533.18.5「 – Sinklar 2010-09-14 17:34:59

+0

這是來自訪問日誌,應該有一個單獨的錯誤日誌,解釋了爲什麼Apache產生了500響應。 – 2010-09-14 21:07:25

回答

8

如果mod_proxy被編譯爲一個共享模塊,它需要你明確地裝入相關的子模塊了。有可能您的服務器mod_proxy_http未啓用,當mod_proxy嘗試處理由mod_rewrite傳遞給它的請求時,會導致內部服務器錯誤。

mod_proxy本身就像你說的和可能的工作,因爲如果你沒有啓用它,使用P標誌只會產生一個404響應被激活。雖然沒有錯誤日誌,但很難確切知道,所以您需要找到可以訪問它的人員,以瞭解發生了什麼事情來幫助您解決問題。

+2

感謝關於404的筆記 - 我無法弄清楚爲什麼我得到它! – 2013-06-15 18:44:10