Tomcat 8.0 重写 Valve

par*_*udy 3 tomcat

我正在尝试在 Tomcat 8.0 http://tomcat.apache.org/tomcat-8.0-doc/rewrite.html 中使用 RewriteValve

在 $CATALINA_HOME/conf/server.xml 中,我添加了

<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
Run Code Online (Sandbox Code Playgroud)

就在 Host 标签下方

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
Run Code Online (Sandbox Code Playgroud)

rewrite.config$CATALINA_HOME/conf目录中创建了一个如下

RewriteRule ^/abc /myapp
Run Code Online (Sandbox Code Playgroud)

http:/host:port/myapp一个工作的 web 应用程序在哪里。

所以现在当我去http://host:port/abc我希望被重定向到http://host:port/myapp但我得到一个 404the requested resource is not available代替。

它看起来甚至没有读取我的 rewrite.config 文件。日志目录中的访问日志只报告了"GET /abc HTTP/1.1" 404 1000没有更多详细信息。

我错过了什么?谢谢

JDS*_*JDS 5

根据文档,如果在server.xml中配置rewrite Valve,则必须将rewrite.config文件放在“Host配置文件夹”中。

主机文件夹是

$CATALINA_HOME/conf/Catalina/[host name]
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下

$CATALINA_HOME/conf/Catalina/localhost.
Run Code Online (Sandbox Code Playgroud)