URLRewriteFIlter,如何删除上下文/文件夹名称?
Posted
技术标签:
【中文标题】URLRewriteFIlter,如何删除上下文/文件夹名称?【英文标题】:URLRewriteFIlter, How to remove the context/folder name? 【发布时间】:2012-01-23 07:01:24 【问题描述】: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 真的是解决初始问题的正确工具吗?
【问题讨论】:
【参考方案1】:您需要将 webapp 部署在上下文根目录上。 或者将 WAR 重命名为 ROOT.war
(并删除 Tomcat 的 web 应用程序中的默认 /ROOT
文件夹,如果有的话),以便 Tomcat 将其自动部署到 root,或编辑<Context>
webapp 的context.xml
元素指定path=""
而不是path="/context"
。
重写过滤器仅在 webapp 级别运行,而不在 Tomcat 级别运行,因此尝试使用它来更改 webapp 的上下文路径(它本身要在 Tomcat 级别配置)是没有意义的。
另见:
Tomcat6 -> how to put a project into the root folder?【讨论】:
感谢您提供的信息,但不幸的是,我们在同一台服务器上还有其他应用程序,因此我无法将其更改为 Root,以上是关于URLRewriteFIlter,如何删除上下文/文件夹名称?的主要内容,如果未能解决你的问题,请参考以下文章
UrlRewriteFilter 在 Tomcat 中不生效
使用urlrewritefilter发现部分请求url报404