2011-12-14 35 views
0

我有一個通過mod-jk在Tomcat的Apache前端運行的struts應用程序。mod重寫tomcat + apache的清除主頁地址

我正在嘗試使用mod-rewrite來清除struts生成的一些操作url。

實施例:

http://www.demo.com/context/user.do?action=aboutushttp://www.demo.com/context/aboutus使用 RewriteRule ^/msn/aboutus$ /msn/user.do?action=aboutus [PT,L]重寫(正常工作)。

問題:我想重寫http://www.demo.com/context/user.do?action=homehttp://www.demo.com(主頁)

我想這 RewriteRule ^/$ /context/userdo?action=home [PT,L]不工作。

FYI

所有CSS,JS和鏈接是相對路徑。

DirectoryIndex的是對的index.html(它是否在改變國防部重寫的行爲嗎?)

的Tomcat 5.5版本,應用程序通過

URLrewrite過濾器不(多個部署)爆炸的WAR文件中public_html/context/文件夾部署根據this幫助刪除上下文名稱。

日誌

我累了看看在不給出任何提示錯誤信息的日誌文件(快照)。

(3) applying pattern '^/$' to uri '/context/jsps/images/abc.png' 
(3) applying pattern '^/abc/aboutus$' to uri '/abc/jsps/images/abc.png' 
(3) applying pattern '^/abc/home$' to uri 
'/abc/jsps/images/abc.png' 

任何人都可以給我一些想法出了什麼問題?我該如何解決這個問題?

回答

1

我想在你重寫^/$的情況下,因爲使用被優先於mod_rewrite的規則的mod_jk你要轉發一切如mod_jk的:Apache的/*到Tomcat。我會建議您在Tomcat應用程序中使用URLRewriteFilter以正確實現這些URL重寫。

+0

安裝了。似乎我所有的URL重寫都是基於上下文的。例如'/ abc/rewrite'。我如何刪除上下文名稱? – Will

+0

我很抱歉這麼晚回覆。要刪除上下文,只需在'urlrewrite.xml'中使用'作爲根標記 – anubhava