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,编辑&lt;Context&gt; webapp 的context.xml 元素指定path="" 而不是path="/context"

重写过滤器仅在 webapp 级别运行,而不在 Tomcat 级别运行,因此尝试使用它来更改 webapp 的上下文路径(它本身要在 Tomcat 级别配置)是没有意义的。

另见:

Tomcat6 -> how to put a project into the root folder?

【讨论】:

感谢您提供的信息,但不幸的是,我们在同一台服务器上还有其他应用程序,因此我无法将其更改为 Root,

以上是关于URLRewriteFIlter,如何删除上下文/文件夹名称?的主要内容,如果未能解决你的问题,请参考以下文章

UrlRewriteFilter 直接到 https

使用UrlRewriteFilter对url进行更替

UrlRewriteFilter 在 Tomcat 中不生效

使用urlrewritefilter发现部分请求url报404

自定义过滤器扩展 UrlRewriteFilter 以从数据库加载规则

UrlRewriteFilter 运行元素产生 404 但元素在 GAE/Java 上工作正常