我正在尝试在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
,没有进一步的详细信息。
我错过了什么?感谢
答案 0 :(得分:1)
如果您想要与默认路径$CATALINA_HOME/conf/Catalina/localhost
不同的内容,则可以使用resourcePath xml定义中的RewriteValve字段来指定相对路径配置文件。 (不可否认,我没有用过这个。)
或者,您可以将阀门添加到$CATALINA_HOME/conf/context.xml
,然后将rewrite.config
移动到Web应用程序的WEB-INF文件夹中。
它也可以位于webapp的context.xml中。然后,阀门将使用包含重写指令的rewrite.config文件,它必须放在Web应用程序的WEB-INF文件夹中
答案 1 :(得分:0)
我必须在server.xml中注释掉AccessLogValve才能使重写阀工作
答案 2 :(得分:-1)
重写阀使用org.apache.catalina.valves.rewrite.RewriteValve类名称配置为阀。
可以将重写阀配置为主机中添加的阀。有关如何配置虚拟服务器的信息,请参见虚拟服务器文档。它将使用包含rewrite指令的rewrite.config文件,必须将其放置在Host configuration文件夹中。
它也可以位于webapp的context.xml中。然后,该阀将使用包含rewrite指令的rewrite.config文件,该文件必须放置在Web应用程序的WEB-INF文件夹中