我正在尝试使用Tomcat8.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" />在Host标签的正下方
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">在$CATALINA_HOME/conf目录中创建了一个包含以下内容的rewrite.config
RewriteRule ^/abc /myapp其中http:/host:port/myapp是一个工作的where应用程序。
所以现在当我转到http://host:port/abc时,我希望被重定向到http://host:port/myapp,但我得到的却是404 the requested resource is not available。
它看起来甚至不像是在读取我的rewrite.config文件。"GET /abc HTTP/1.1" 404 1000目录中的访问日志只报告日志,没有进一步的详细信息。
我遗漏了什么?谢谢
发布于 2015-01-03 00:22:50
在Tomcat文档中,http://tomcat.apache.org/tomcat-8.0-doc/rewrite.html是这样写的
可将重写阀配置为添加到主机中的阀。有关如何配置它的信息,请参阅虚拟服务器文档。它将使用包含重写指令的rewrite.config文件,它必须放在主机配置文件夹中。
因此,尝试将rewrite.config迁移到$CATALINA_HOME/conf/Catalina/localhost中
小提示:您可能在rewrite.config中拼写错误(例如xxRewriteRule ),然后如果tomcat读取此文件,则会失败。我认为在你的例子中,即使你拼错了什么东西,tomcat也会启动(因为它没有被读)。
发布于 2015-01-31 01:38:25
如果您希望使用与默认路径$CATALINA_HOME/conf/Catalina/localhost不同的路径,则可以使用RewriteValve xml定义中的字段来指定配置文件的相对路径。(诚然,我没有用过这个。)
或者,您可以将阀添加到$CATALINA_HOME/conf/context.xml,然后将rewrite.config移到web应用程序的WEB-INF文件夹中。
它也可以在webapp应用程序的context.xml中。然后,阀门将使用包含重写指令的rewrite.config文件,该文件必须放在web应用程序
的WEB-INF文件夹中
发布于 2017-06-21 16:56:35
我不得不注释掉server.xml中的AccessLogValve,这样我的重写阀才能工作
https://stackoverflow.com/questions/26932253
复制相似问题