Tomcat 8.0重写阀门

时间:2014-11-14 14:29:36

标签: tomcat

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

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

<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />

位于主机标记正下方

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

使用以下

rewrite.config目录中创建$CATALINA_HOME/conf
RewriteRule ^/abc /myapp

其中http:/host:port/myapp是一个有效的网络应用程序。

现在,当我转到http://host:port/abc时,我希望被重定向到http://host:port/myapp,但我会得到404 the requested resource is not available

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

我错过了什么?感谢

3 个答案:

答案 0 :(得分:1)

如果您想要与默认路径$CATALINA_HOME/conf/Catalina/localhost不同的内容,则可以使用resourcePath xml定义中的RewriteValve字段来指定相对路径配置文件。 (不可否认,我没有用过这个。)

或者,您可以将阀门添加到$CATALINA_HOME/conf/context.xml,然后将rewrite.config移动到Web应用程序的WEB-INF文件夹中。

来自documentation

  

它也可以位于webapp的context.xml中。然后,阀门将使用包含重写指令的rewrite.config文件,它必须放在Web应用程序的WEB-INF文件夹中

答案 1 :(得分:0)

我必须在server.xml中注释掉AccessLogValve才能使重写阀工作

答案 2 :(得分:-1)

根据apacheDoc

重写阀使用org.apache.catalina.valves.rewrite.RewriteValve类名称配置为阀。

可以将重写阀配置为主机中添加的阀。有关如何配置虚拟服务器的信息,请参见虚拟服务器文档。它将使用包含rewrite指令的rewrite.config文件,必须将其放置在Host configuration文件夹中。

它也可以位于webapp的context.xml中。然后,该阀将使用包含rewrite指令的rewrite.config文件,该文件必须放置在Web应用程序的WEB-INF文件夹中