配置Tomcat8重写机制 RewriteValue & RewriteRule

来源:互联网 发布:电脑不能从网络启动 编辑:程序博客网 时间:2024/06/04 19:55

  URL重写或者说是重定向是tomcat的一个非常重要的机制,接下来我将简要的配置一个URL重写示例。
  首先你应该有一个可以在tomcat上运行的webapp,你的server.xml(位于$CATALINA_HOME/conf/)<Host>标签正常应该是这样的:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">        <!-- SingleSignOn valve, share authentication between web applications             Documentation at: /docs/config/valve.html -->        <!--        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />        -->        <!-- Access log processes all example.             Documentation at: /docs/config/valve.html             Note: The pattern used is equivalent to using pattern="common" -->        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/></Host>

  我们将在server.xml配置我们的webapp重写机制,在server.xml里的<Host>标签配置如下context 标签

<Context docBase="YourWebName" path="/" reloadable="true" crossContext="true">            <Valve className="org.apache.catalina.valves.rewrite.RewriteValve"/></Context>

  当然了,也可以将这个信息单独放在context.xml全局文件里。

  接下来就是配置重写规则了:
只需要在你的webapp WEB-INF目录下创建rewrite.config的配置文件,比如说我们要将http://localhost:8080/ 映射到你的webapp 某个页面: http://localhost:8080/“yourwebname” /test.html, 我们可以这样配置

RewriteRule ^/     /yourwebname/test.html    [L]

至此,重写机制配置完成,当你在浏览器中输入http://localhost:8080/, 就可以正常访问test.html页面了。
具体的RewriteRule 语法规则可参考《浅析Apache中RewriteRule和RewriteCond规则参数的详细介绍》