Link to my previous question , 我想将 http://www.demo.com/context/user.do?action=home
重写为 http://www.demo.com
,并被建议尝试 URLRewriteFilter。
下面的代码
<rule>
<from>^/$</from>
<to type="redirect">%{context-path}/user.do?action=home</to>
</rule>
没有去掉上下文名称,就是我还需要从http://www.demo.com/context/
鉴于官方站点中的所有示例都是基于上下文之上的,RewriteFilter 真的是解决初始问题的正确工具吗?
最佳答案
您需要在上下文根上部署 webapp。 或者将 WAR 重命名为 ROOT.war
(并删除 Tomcat 的 webapps 中的默认 /ROOT
文件夹,如果有的话)以便 Tomcat 将其自动部署到根目录,或编辑 <Context>
webapp 的元素 context.xml
指定 path=""
而不是 path="/context"
.
重写过滤器仅在 webapp 级别运行,而不是在 Tomcat 级别运行,因此尝试使用它来更改 webapp 的上下文路径(它本身要在 Tomcat 级别配置)是没有意义的。
另见:
关于tomcat - URLRewriteFIlter,如何删除上下文/文件夹名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556407/