2009-08-17 168 views
6

我運行了Apache和Tomcat,並使用mod_jk來綁定它們。我有一個的Tomcat worker被稱爲「TC1」和下面的設置上我VirtualHostmod_jk與mod_rewrite衝突

JkMount /* tc1 
JkUnMount /*.png tc1 
JkUnMount /*.gif tc1 
JkUnMount /*.css tc1 
JkUnMount /*.js tc1 

這樣的Tomcat服務分開的那些靜態文件的所有請求。

現在我想用mod_rewrite和做一些很簡單的比如:

RewriteEngine On 
RewriteRule ^/foo$ /bar [L] 

重寫動態瀏覽量在「/富」到「/酒吧」,但它並沒有因爲所有的網址工作由mod_rewrite處理不會最終成爲mod_jk

我讀過Apache Tomcat Connector documentation並嘗試了所有JkOptions但沒有任何改變。

有誰知道如何解決這個問題?

mod_jkmod_rewrite加載順序和聲明順序在URL處理中扮演什麼角色嗎?

感謝

回答

12

這是奇怪的,因爲默認情況下RewriteRule發送一個客戶端的重定向,所以客戶應進行第二次請求/酒吧,應該用自己的JkMount捕獲。您的訪問日誌顯示是否顯示/foo的請求以及/bar的請求?

試試這個規則來代替:

RewriteRule ^/foo$ /bar [PT,L] 

的「PT」的意思是「直通」,並且是重寫bodge它允許你發生變異的URL原位,讓其他模塊獲得一看,而不發送重定向。

+0

感謝您的回答。我會嘗試併發布結果。請注意,我不希望客戶端重定向,而是重寫url。 – cherouvim 2009-08-17 19:31:22

+0

非常感謝! PT(passthrough)是我想要的! – cherouvim 2009-08-18 06:47:42