2010-01-22 42 views
1

我想實現一些Apache重寫規則,以便在Internet Explorer中爲XHTML正確設置MIME類型(in)。我發現在很多地方這些重寫規則,他們似乎對大多數人的工作:Apache重寫覆蓋Mime和代理請求?

RewriteCond %{HTTP_USER_AGENT} .*MSIE.* 
    RewriteRule .* - [T=text/html] 

然而,我的網站已經使用重寫規則用[P]標誌的代理請求到本地Tomcat實例。無論我做什麼,上述規則似乎都被從Tomcat返回的mime類型覆蓋。 Apache的文檔說爲[P]標記:

此標記強制替換部分 被內部發送作爲代理 請求,並立即(重寫這裏 處理停止)

..因此我無法將MIME規則放在我的代理規則之後。如果我將它們放在代理規則之前,則代理會覆蓋MIME類型。

如果我使用代理規則,是否有任何方法可以爲IE設置MIME類型?或者,我是唯一選擇更改Tomcat中的MIME類型(不幸的是,需要更改代碼)。

感謝, 傑夫

回答

1

我不知道這是否會工作,你可以試試。應用兩條規則,一條適用於IE,另一條適用於非IE。

RewriteCond %{HTTP_USER_AGENT} .*MSIE.* 
RewriteRule ^(.*)$ http://localhost-tomcat:8080/$1 [T=text/html,P,L] 

沒有瀏覽器檢測第二條規則

RewriteRule ^(.*)$ http://localhost-tomcat:8080/$1 [P,L]