URLRewriteFIlter,如何删除上下文/文件夹名称



链接到我之前的问题,我想重写http://www.demo.com/context/user.do?action=homehttp://www.demo.com,并被建议尝试URLRewriteFilter。

以下代码

   <rule>
        <from>^/$</from>    
        <to type="redirect">%{context-path}/user.do?action=home</to>    
   </rule>

没有删除上下文名称,也就是说,我仍然需要从http://www.demo.com/context/

输入

考虑到官方网站中所有的例子都是基于上下文,RewriteFilter真的是解决初始问题的正确工具吗?

你需要将web应用部署到上下文根目录。将WAR重命名为ROOT.war(并删除Tomcat的webapps中的默认/ROOT文件夹,如果有的话),以便Tomcat将其自动部署到根目录,编辑webapp的context.xml<Context>元素以指定path=""而不是path="/context"

重写过滤器只运行在webapp级别,而不是Tomcat级别,所以试图用它来改变webapp的上下文路径(它本身是在Tomcat级别配置的)是没有意义的。

参见:

  • Tomcat6→如何将项目放入根文件夹?

最新更新