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

标签 tomcat url-rewriting servlet-filters

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/

相关文章:

jsf - 使用 MyFaces 2.1.11 构建的应用程序可以在 Tomcat 6.0.24 上运行吗?

tomcat - 重新启动solr而不重新启动整个tomcat服务

php - 使用magento制作一个没有索引的好url

java - 我怎样才能在当前过滤器中获取请求的servlet?

java - 使用 application.properties 中的值初始化过滤器

java - 当请求是映射的 servlet 时如何知道过滤器内部?

使用 Maven 构建的 Java Spring Boot Web App(hello world) 运行时无法启动 Tomcat

google-app-engine - 有人准备为 GAE 创建基于 tomcat 的替代方案吗?

apache - 如何路由各种域别名以使用自己的网页 PHP 文件获取自己的文件夹?

regex - 将正则表达式拆分为 2 个捕获组