UrlRewriteFilter 在 Tomcat 中不生效
Posted
技术标签:
【中文标题】UrlRewriteFilter 在 Tomcat 中不生效【英文标题】:UrlRewriteFilter Is Not Taking Effect in Tomcat 【发布时间】:2021-01-29 18:59:27 【问题描述】:我的网站托管在 Tomcat 下的 Centos 中。 网络运行良好。 (WEB-INF 中没有 web.xml)
我想使用 urlrewritefilter-4.0.4.jar 为 jsp 页面创建一个永久链接 但是上传后,地址web.com/COVID-19显示404。
这是我的 web.xml(默认)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
</web-app>
这是我的 urlrewrite.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule>
<from>/COVID-19</from>
<to>/covid19.jsp</to>
</rule>
</urlrewrite>
请帮忙,谢谢。
【问题讨论】:
【参考方案1】:所以,当我在绝望中挣扎了几个小时后,在午夜深夜沉思时,我开悟了。
urlrewritefilter 不起作用的原因是因为 Tomcat 真的没有什么可响应的。 它是 Apache,它只将 url 转发到以 *.jsp 和 servlet (mod_jk) 结尾的 Tomcat。 所以很自然,Tomcat 没有得到任何以“COVID-19”结尾的 url,因为它是由 Apache 处理的。
我修改了配置,现在运行流畅。 感谢上帝。
【讨论】:
以上是关于UrlRewriteFilter 在 Tomcat 中不生效的主要内容,如果未能解决你的问题,请参考以下文章
UrlRewriteFilter 运行元素产生 404 但元素在 GAE/Java 上工作正常
URLRewriteFIlter,如何删除上下文/文件夹名称?